VBScript-修改Windows环境变量

VBScript-修改Windows环境变量,vbscript,environment-variables,Vbscript,Environment Variables,我目前使用一个批处理文件覆盖一些环境变量,使游戏可移植 主要内容如下: Set USERPROFILE = %CD% 这仅在该会话或从批处理加载的程序中保持有效。因此,当我在游戏中加载以下内容时: Start "" "FL.exe" 游戏将My Documents、My Pictures和AppData文件夹视为在我的游戏文件夹中 是否可以在VBScript中复制此功能?是,通过对象复制。您可以在系统、用户和流程级别查询、添加和删除环境变量 例如: Set objShell = Create

我目前使用一个批处理文件覆盖一些环境变量,使游戏可移植

主要内容如下:

Set USERPROFILE = %CD%
这仅在该会话或从批处理加载的程序中保持有效。因此,当我在游戏中加载以下内容时:

Start "" "FL.exe"
游戏将My Documents、My Pictures和AppData文件夹视为在我的游戏文件夹中

是否可以在VBScript中复制此功能?

是,通过对象复制。您可以在系统、用户和流程级别查询、添加和删除环境变量

例如:

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 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.

该函数的执行情况是否与我最初的问题完全相同?暂时的?传递到VBScript加载的任何EXE?是。VBScript生成的任何进程都将继承进程级环境变量。当脚本终止时,对进程级变量的任何更改都将丢失。感谢您的帮助:)该函数的性能是否与我最初的问题中的完全相同?暂时的?传递到VBScript加载的任何EXE?是。VBScript生成的任何进程都将继承进程级环境变量。当脚本终止时,对进程级变量的任何更改都将丢失。感谢您的帮助:)