VBScript 设置环境变量但可执行文件不拾取它们

VBScript setting environment variables but executable not picking up them up

我有以下 VBScript(值和名称已更改)

Dim InstanceName

Set objShell = WScript.CreateObject("WScript.Shell")
Set objEnv = objShell.Environment("USER")
objEnv("PLUGIN") = "plugin"
objEnv("CONF") = "location"

Set ArgObj=Wscript.Arguments
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("path.txt", 1)
AbsolutePath = objTextFile.ReadLine
objTextFile.Close
directory = "C:\Program Files\"&AbsolutePath&"\bin"

executable = directory&"\app-"&InstanceName&".exe"
objShell.CurrentDirectory = directory
objShell.Run Chr(34) & executable & Chr(34), 1, false
Set objShell = Nothing

我的程序使用了环境变量 PLUGIN 和 CONF。但是,第一次使用脚本启动程序时,找不到环境变量。由于已经设置了环境变量,因此后续启动工作正常。

即使在第一次启动后,我在检查控制面板时也能看到它们,但可执行文件似乎没有接收到它们。

如何在脚本首次 运行 时为可执行文件正确设置变量?

谢谢!

问题是这些值没有存储为 User 环境变量。通读文档,您要确保将 WScript.Shell 对象的 Environment 属性 设置为正确的环境变量集,根据 the documentation 值是;

  • 系统
  • 用户
  • 易变
  • 进程

建议更改代码使用;

Set objEnv = objShell.Environment("SYSTEM")

然后从那里开始。