Powershell 函数输出作为 Git 命令的参数值

bPr*_*tik 3 git powershell

如何将 powershell 函数的输出作为参数传递给命令?

我认为一个非常简单的命令没有成功:

git checkout -b SimplifyName("Test 1")
Run Code Online (Sandbox Code Playgroud)

输出是一个错误:

fatal: 'Test 1' is not a commit and a branch 'SimplifyName' cannot be created from it
Run Code Online (Sandbox Code Playgroud)

为了这个问题,

function SimplifyName ([string] $str = "UNDEFINED") {
    $result = $str.Trim().ToLowerInvariant() -replace "[^a-z0-9]+","_"
    Write-Output $result
}
Run Code Online (Sandbox Code Playgroud)

据我了解,后面的任何内容都-b被视为git checkout -b命令的空格分隔的字符串参数。

我也正在努力寻找一个好的帮助资源,因为我可能使用了不正确的术语。

Jam*_* C. 5

$()是一个子表达式运算符,它的意思是“首先评估它,然后将其作为独立语句单独执行”。

这里它用于评估函数,然后将其输出用于命令git

git checkout -b $(SimplifyName "Test 1")
Run Code Online (Sandbox Code Playgroud)

  • 我们不使用括号来调用 PowerShell 中的函数。它在语法上是有效的,但在语义上不正确。它实际上应该是 `git checkout -b $(SimplifyName "Test1")`。 (3认同)