我正在尝试以下命令的各种变体:
powershell -command "'C:\Program Files (x86)\Microsoft Visual Studio 10.0\vc\vcvarsall.bat' x86" -noexit
我希望用VS环境变量运行Powershell - 无济于事。我只是不能正确得到报价。
答案 0 :(得分:5)
查看PowerShell Community Extensions。它附带一个命令来调用批处理文件,“记住”它设置的env vars并将它们带入PowerShell会话。事实上,我的个人资料就是VS vars,例如:
Import-Module Pscx
function Import-VS9Vars
{
$vcargs = ?: {$Pscx:Is64BitProcess} {'amd64'} {'x86'}
Push-EnvironmentBlock -Description "Before importing VS 2008 $vcargs var"
Invoke-BatchFile "${env:VS90COMNTOOLS}..\..\VC\vcvarsall.bat" $vcargs
}
function Import-VS10Vars
{
$vcargs = ?: {$Pscx:Is64BitProcess} {'amd64'} {'x86'}
Push-EnvironmentBlock -Description "Before importing VS 2010 $vcargs vars"
Invoke-BatchFile "${env:VS100COMNTOOLS}..\..\VC\vcvarsall.bat" $vcargs
}
Import-VS10Vars
重要的命令是Invoke-BatchFile。这个函数的源代码在下载中,所以如果你不想使用整个模块,你可以根据需要复制一个函数。
答案 1 :(得分:1)
从Bruce Payette的“Windows PowerShell in Action,Second Edition”中查看Get-BatchFile
也可以使用PowerShell中的这些批处理文件 执行它们,转储已经发生的更改 环境,然后将这些更改重新导入PowerShell 环境。
答案 2 :(得分:0)