Código de salida de Powershell Git Hook

Tengo lo siguiente en mi file .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 

Esto ejecuta correctamente el código en el file pre-commit-hook.ps1 en el mismo directory, pero no captura el código de salida. Según tldp.org, se devolverá el último código de salida si solo se especifica exit. Los hooks de Git fallarán si el código de salida no es cero, pero aunque mi script de powershell devuelve un código de estado de 1, siempre tiene éxito. ¿Qué puedo hacer para capturar el código de salida del script de PowerShell para que el enlace funcione correctamente?

Mantenga la invocación de la secuencia de commands ps1 simple y debe tenerlo funcionando. Lo siguiente funciona para mí:

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

La secuencia de commands ps1 acaba de tener una exit 1 y la confirmación no se realizó.

Cuando haces cosas como -command , Powershell no funciona correctamente y es posible que tengas que hacer algo como -command {& .\test.ps1; exit $lastexitcode} -command {& .\test.ps1; exit $lastexitcode}