对于Powershell来说还很陌生,所以我不确定目前是否以正确的方式进行操作,但是我正在努力将变量传递到Invoke-Expression字符串中,希望有人可以提供帮助。
$projectLocation = "C:/Users/Admin/Desktop/Projects/repo"
Invoke-Expression 'cmd /c start powershell -Command {
cd $projectLocation;
git pull
}'
我也尝试过使用
' + $projectLocation + '
拆分字符串,但运气还不算太好。我实现目标的唯一方法是手动插入
$projectLocation
字符串。我认为我距离还很遥远,但是任何帮助都会很棒!谢谢。
最佳答案
完全不需要评估生成cmd
的代码来启动powershell.exe的新实例:
$projectLocation = "C:/Users/Admin/Desktop/Projects/repo"
cd $projectLocation
git pull
如果要抑制任何可能产生的输出,只需将其包装在一个块或函数中,然后将输出流重定向到
$null
:function Pull-Repo
{
param(
[string]
$projectLocation = "C:/Users/Admin/Desktop/Projects/repo"
)
Push-Location $projectLocation
git pull
Pop-Location
}
# suppress all output
Pull-Repo *> $null
关于git - 在Invoke-Expression字符串中使用变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57108509/