对于Powershell来说是很新的东西,所以我不确定目前是否以正确的方式进行操作,但是我正在努力将变量传递到Invoke-Expression字符串中,并希望某人将能够提供帮助。
$projectLocation = "C:/Users/Admin/Desktop/Projects/repo"
Invoke-Expression 'cmd /c start powershell -Command {
cd $projectLocation;
git pull
}'
我也尝试过用' + $projectLocation + '
分割字符串,但是运气还不太好。
我实现目标的唯一方法是手动插入$projectLocation
字符串。
我认为我距离还很遥远,但是任何帮助都会很棒!谢谢。
答案 0 :(得分:3)
完全不需要评估生成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