【发布时间】:2018-08-08 05:34:08
【问题描述】:
我有一个名为 SET_ENV.bat 的批处理脚本,其中包含其他批处理脚本使用的环境变量。目前这个 SET_ENV.bat 由现有的批处理脚本启动。
现在我需要使用 Powershell 脚本,我想启动相同的 SET_ENV.bat。我设法做到了这一点:
cmd.exe /c ..\..\SET_ENV.bat
我知道批处理文件已运行,因为它包含回显
echo *** Set the environment variables for the processes ***
但是查看环境变量后,我可以看到它们都没有更新。是否有什么阻止我使用 Powershell + 批处理文件组合更新环境变量?
我已经直接从命令行尝试了 SET_ENV.bat 并且它可以工作。我也尝试过使用“-Verb runAs”的 Start-Process cmdlet,但这没有任何好处。
【问题讨论】:
-
我发现有人在这里谈论类似的事情:stackoverflow.com/questions/20077820/… 但这并没有提供为什么它不起作用的答案/原因。
-
您可以直接使用 PowerShell 来执行此操作。像这样的东西可以工作
[Environment]::SetEnvironmentVariable("TestVariableName", "My Value", "<Option>") -
@VivekKumarSingh:或者只是
$Env:TestVariableName = 'MyValue'。无需将事情过度复杂化。 -
@Joey:是的,也可以这样做。我曾见过需要设置范围的情况。因此,过于复杂的代码。 :)
标签: powershell batch-file environment-variables