【发布时间】:2016-04-04 10:34:00
【问题描述】:
我已安装 Visual Studio 9.0,但我想从 PowerShell 手动使用它。它带有两个设置脚本:vcvars32.bat 用于 32 位编译器,vcvars64.bat 用于 64 位编译器。当我打开cmd.exe 并运行其中一个脚本时,它设置的一切都很好,我可以毫无问题地运行cl.exe。但是,当我从 PowerShell 运行其中一个设置脚本时,它不起作用。脚本运行良好,但尝试运行 cl.exe 之后会产生“cl.exe 找不到”错误!在运行一个设置脚本后查看PATH 环境变量的内容,我可以看到PATH 实际上根本没有被修改。
因此,从 PowerShell 运行的批处理文件似乎维护了它们自己的环境变量状态,一旦批处理文件终止,该状态就会消失。那么有没有办法从 PowerShell 运行批处理文件并让这些批处理文件影响当前 PowerShell 会话的实际环境变量?因为那是我需要的。 vcvars32.bit 和 vcvars64.bit 所做的一切毕竟是设置环境变量,但它似乎只能在 cmd.exe 中工作,而不是在 PowerShell 中。
【问题讨论】:
标签: powershell batch-file visual-studio-2012 cmd