Powershell Git挂钩退出代码

我在.git / hooks / pre-commit文件中有以下内容

#!/bin/sh exec c:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -ExecutionPolicy RemoteSigned -Command " Get-Location | % { '$_\pre-commit-hook.ps1'} | % { & $_ }" exit 

这成功地执行了同一个目录中的pre-commit-hook.ps1文件中的代码,但是不捕获退出代码。 根据tldp.org ,如果只指定退出,则将返回最后的退出代码。 如果退出代码非零,Git钩子将失败,但即使我的powershell脚本返回状态码1,它总是成功。 我能做些什么来捕获从PowerShell脚本的退出代码,使钩子将正常工作?

保持简单的ps1脚本的调用,你应该有它的工作。 以下为我工作:

 #!/bin/sh echo exec powershell.exe -ExecutionPolicy RemoteSigned -File '.\.git\hooks\pre-commit-hook.ps1' exit 

ps1脚本刚刚exit 1 ,提交没有发生。

当你正在做的东西像-command ,Powershell不知道工作正常,你可能不得不做一些像-command {& .\test.ps1; exit $lastexitcode} -command {& .\test.ps1; exit $lastexitcode}