在powershell中,如何将下标的退出代码返回到调用脚本

时间:2015-07-13 03:27:43

标签: powershell return exit-code subscript

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)

1 个答案:

答案 0 :(得分:1)

trap { $host.SetShouldExit(-1) }