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")
然后从那里开始。
我有以下 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")
然后从那里开始。