我试图做一个别名git commit
它也记录到一个单独的文本文件的消息。但是,如果git commit
返回"nothing to commit (working directory clean)"
,它不应该记录任何东西到单独的文件。字符串比较在PowerShell函数中不起作用 - 我做错了什么?
这是我的代码。 git commit
别名的作品;输出到文件的作品。但是,无论从git commit
中返回什么,它都会记录该消息。
function git-commit-and-log($msg)
{
$q = git commit -a -m $msg
$q
if ($q –notcontains "nothing to commit") {
$msg | Out-File w:\log.txt -Append
}
}
Set-Alias -Name gcomm -Value git-commit-and-log
我使用PowerShell的3
”$ q包含每行git stdout的字符串数组。“只有当git生成多行输出时。如果git只输出一行到stdout,那么$ q将包含一个单一的字符串,而不是一个数组(我在我的回答中提到的东西)。 – 2013-04-28 19:34:31
从OPs git commit commit(在我的机器上尝试它)返回多行。 – 2013-04-28 21:20:06
我不使用该工具,因此我无法对此发表评论。但是我只想指出,这个特定的答案不能笼统地用于捕获命令行工具输出的所有情况。 – 2013-04-28 21:35:23