gpt4 book ai didi

powershell - 在PowerShell脚本中处理命令提示符错误

转载 作者:行者123 更新时间:2023-12-04 03:36:44 25 4
gpt4 key购买 nike

我正在尝试在PowerShell脚本中运行一些命令提示符命令,例如schtasks。我想知道如何处理PowerShell中命令抛出的错误。

我试过了:

  • & cmd.exe /c 'schtasks /Query /TN xx || echo ERROR'
  • & cmd.exe /c 'ping.exe 122.1.1.1 && exit 0 || exit 1'
  • Invoke-Expression -Command:$command

  • 我无法运行这些命令并忽略或捕获PowerShell脚本的 try..catch块中的异常。我知道有库,但仅限于PowerShell v2.0。

    最佳答案

    如果外部命令因错误而终止,则通常会设置非零退出代码,因此您可以检查automatic variable $LASTEXITCODE是否具有非零值:

    & cmd /c 'schtasks /Query /TN xx'
    if ($LASTEXITCODE -ne 0) {
    'an error occurred'
    }

    但是请注意,有些程序使用非零退出代码获取非错误信息(例如 robocopy,使用低于8的退出代码获取状态信息,或者 choice,其使用退出代码指示所选选项)。

    可以通过在CMD中重定向错误输出流来抑制外部命令的错误消息:
    & cmd /c 'schtasks /Query /TN xx 2>nul'

    或在PowerShell中:
    & cmd /c 'schtasks /Query /TN xx' 2> $null

    关于powershell - 在PowerShell脚本中处理命令提示符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34755510/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com