gpt4 book ai didi

powershell - 在 Powershell 中为批处理文件设置变量

转载 作者:行者123 更新时间:2023-12-04 02:04:53 27 4
gpt4 key购买 nike

我有一个名为 bar.cmd 的批处理文件单行:ECHO %Foo% .
如何设置 Foo在 Powershell 脚本中,这样当我调用 & .\bar.cmd 时,它会打印 Bar ?

最佳答案

在 PowerShell 中设置环境变量:

Set-Item Env:foo "bar"

或者
$env:foo = "bar"

如果你想反过来做,请阅读这篇文章:

http://windowsitpro.com/powershell/take-charge-environment-variables-powershell

当您运行时 cmd.exe要在 PowerShell 中执行 shell 脚本( .bat.cmd 文件),该变量将设置在 cmd.exe 的运行实例中但在 cmd.exe 时丢失了实例终止。

解决方法:运行 cmd.exe shell 脚本并输出它设置的任何环境变量,然后在当前 PowerShell session 中设置这些变量。本文提供了一个简短的 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
}
}

关于powershell - 在 Powershell 中为批处理文件设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535773/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com