对于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/

10-13 00:21