我已经安装了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中。
README.md
中描述的方式将其添加到我的配置文件中,但仍然找不到Invoke-Environment
命令。当使用完全限定路径调用脚本时,它可以找到脚本,但似乎无法运行我传递为参数的批处理脚本,因为没有输出,并且也没有正确设置环境变量。 - Andreas$Env:
中是否存在变量。 - majkinetorVS100COMNTOOLS
是什么?这是一个环境变量吗?这里没有设置它。vsvarsXXX.bat
脚本在这里:C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin
。 - Andreascmd.exe
只是Posh的另一个shell,它是否也支持bash
变量? - majkinetor