Powershell的: 从脚本调用下标时,如果下标出现失败(即退出代码不为0),则主脚本仍然以退出代码0退出,显示为成功。
由于下标命令在脚本中执行,因此主脚本端没有错误。 如何让主脚本读取下标的退出代码,将退出代码显示为失败?
我曾尝试在退出下标之前返回值,并在主脚本中调用它或使用$ lastexitcode值,但那些没有用。
主脚本:
AppendFile.ps1
function ExitWithCode
{
param
(
$exitcode
)
$host.SetShouldExit($exitcode)
Write-Host "($exitcode)"
exit
}
#..... Do something
#Calling subscript from main script
& C:\Testappendfile.ps1
if ($LASTEXITCODE -ne 0){
ExitWithCode -exitcode 321
}
else {
ExitWithCode -exitcode 0
}
TestAppendFile.ps1
function ExitWithCode
{
param
(
$exitcode
)
$host.SetShouldExit($exitcode)
Write-Host "($exitcode)"
exit
}
$FileExists = Test-Path C:\Files\check.txt
If ($FileExists -eq $True){
ExitWithCode -exitcode 0
}
else {
ExitWithCode -exitcode 321
}
如果filepath不正确,那么我输入输出:
(321)
(0)
而不是
(321)
(321)
答案 0 :(得分:1)
trap { $host.SetShouldExit(-1) }