我想编写一个程序,在调用它的 shell (cmd.exe) 实例中设置环境变量。我的想法是,我可以在这个变量中存储一些状态,然后在后续调用中再次使用它。
我知道有像 SetEnvironmentVariable 这样的命令,但我的理解是这些命令只会更改当前进程的变量,而不会修改调用 shell 的变量。
具体来说,我希望能够做的是创建一个可以在两个目录之间跳转的命令。 Pushd/Popd 可以转到一个目录并返回,但没有办法第二次返回到最初推送的目录。
MSDN 声明如下:
Calling SetEnvironmentVariable
没有
对系统环境的影响
变量。以编程方式添加或
修改系统环境变量,
将它们添加到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session
Manager\Environment
注册表项,然后
广播一个WM_SETTINGCHANGE
信息
和lParam
设置为字符串
“环境”。这允许
应用程序,例如 shell,
获取您的更新。请注意,
环境变量的值
此键中列出的内容仅限于 1024 个
人物。
考虑到环境有两个级别 - 系统和进程 - 更改 shell 中的环境将构成更改另一个进程的环境。我不相信这是可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)