Ari*_*iac 3 powershell cmd batch-file
我有一个bar.cmd用一行命名的批处理文件:ECHO %Foo%.
如何设置FooPowershell脚本,以便在打电话& .\bar.cmd时打印Bar?
要在PowerShell中设置环境变量:
Set-Item Env:foo "bar"
Run Code Online (Sandbox Code Playgroud)
要么
$env:foo = "bar"
Run Code Online (Sandbox Code Playgroud)
如果你想反过来做,请阅读这篇文章:
http://windowsitpro.com/powershell/take-charge-environment-variables-powershell
当您在PowerShell中运行cmd.exe以执行shell脚本(.bat或.cmd文件)时,该变量将在该运行实例中设置cmd.exe但在该cmd.exe实例终止时丢失.
解决方法:运行cmd.exeshell脚本并输出它设置的任何环境变量,然后在当前的PowerShell会话中设置这些变量.本文提供了一个简短的PowerShell函数,可以为您执行此操作:
# Invokes a Cmd.exe shell script and updates the environment.
function Invoke-CmdScript {
param(
[String] $scriptName
)
$cmdLine = """$scriptName"" $args & set"
& $Env:SystemRoot\system32\cmd.exe /c $cmdLine |
Select-String '^([^=]*)=(.*)$' | ForEach-Object {
$varName = $_.Matches[0].Groups[1].Value
$varValue = $_.Matches[0].Groups[2].Value
Set-Item Env:$varName $varValue
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4132 次 |
| 最近记录: |