VBScript - 修改 Windows 环境变量
VBScript - Modify Windows Env Variables
我目前使用批处理文件覆盖一些环境变量以使游戏可移植。
主要如下:
Set USERPROFILE = %CD%
这仅在该会话或从批处理加载的程序中有效。所以当我通过它加载游戏时:
Start "" "FL.exe"
游戏将“我的文档”、“我的图片”和“AppData”文件夹视为在我的游戏文件夹中。
能否在 VBScript 中完全复制此功能?
是的,通过 WshShell.Environment
对象。您可以在系统、用户和进程级别查询、添加和删除环境变量。
例如:
Set objShell = CreateObject("WScript.Shell")
Set objProcessVars = objShell.Environment("process")
' Query existing environmental variables...
For Each objVar In objProcessVars
WScript.Echo objVar
Next
' Add/Override a process-level variable...
objProcessVars("USERPROFILE") = "C:\Test"
' Spawned processes inherit your process-level variables...
objShell.Run "C:\AnotherScript.vbs"
' When script terminates, changes are lost.
我目前使用批处理文件覆盖一些环境变量以使游戏可移植。
主要如下:
Set USERPROFILE = %CD%
这仅在该会话或从批处理加载的程序中有效。所以当我通过它加载游戏时:
Start "" "FL.exe"
游戏将“我的文档”、“我的图片”和“AppData”文件夹视为在我的游戏文件夹中。
能否在 VBScript 中完全复制此功能?
是的,通过 WshShell.Environment
对象。您可以在系统、用户和进程级别查询、添加和删除环境变量。
例如:
Set objShell = CreateObject("WScript.Shell")
Set objProcessVars = objShell.Environment("process")
' Query existing environmental variables...
For Each objVar In objProcessVars
WScript.Echo objVar
Next
' Add/Override a process-level variable...
objProcessVars("USERPROFILE") = "C:\Test"
' Spawned processes inherit your process-level variables...
objShell.Run "C:\AnotherScript.vbs"
' When script terminates, changes are lost.