Joh*_*ith 5 javascript environment wsh batch-file
如何在WSH jscript文件中设置一个调用另一个程序的环境变量?这是减少的测试用例:
envtest.js
----------
var oShell = WScript.CreateObject("WScript.Shell");
var oSysEnv = oShell.Environment("SYSTEM");
oSysEnv("TEST_ENV_VAR") = "TEST_VALUE";
oExec = oShell.Run("envtest.bat", 1, true);
envtest.bat
-----------
set
pause
Run Code Online (Sandbox Code Playgroud)
我希望在变量列表中看到TEST_ ENV _VAR,但它不存在.怎么了?
编辑:
如果有人可以生成工作代码示例,我会将其标记为正确答案.:)
问题不在您的代码中,而是在执行过程中.将完整的系统变量分配给执行的过程.所以,你的子进程也有相同的变量集.
您的代码示例效果很好.它将变量添加到SYSTEM环境中.
因此,您不仅需要为系统设置变量,还需要为过程设置变量.
这是代码.
var oShell = WScript.CreateObject("WScript.Shell");
var oSysEnv = oShell.Environment("SYSTEM");
oSysEnv("TEST1") = "TEST_VALUE";
var oSysEnv = oShell.Environment("PROCESS");
oSysEnv("TEST1") = "TEST_VALUE";
oExec = oShell.Run("envtest.bat", 1, true);
Run Code Online (Sandbox Code Playgroud)
一旦创建了系统变量.
它将为当前进程分配新创建的变量.因此,您的子进程可以在执行"SET"命令时获取该变量.
对不起,我的英语不好.
| 归档时间: |
|
| 查看次数: |
14043 次 |
| 最近记录: |