gpt4 book ai didi

powershell - 将 PowerShell cmdlet 的错误级别传递到批处理文件

转载 作者:行者123 更新时间:2023-12-03 07:51:43 25 4
gpt4 key购买 nike

我正在修改现有的批处理文件以测试服务器上的端口。我能看到的唯一方法是使用 PowerShell。我需要执行一个 cmdlet 并将错误级别传递回批处理文件。所以我执行这样的事情:

PowerShell -Command "Test-NetConnection -ComputerName www.google.com -Port 80"
  • 这是一个现有的已批准脚本,我只进行了这一更改,而不是将整个内容重写到 PowerShell
  • 由于这是一个 cmdlet,$?将错误作为 True 或 False 传递,而不是 $LastExitCode
  • 最佳答案

    不像 Test-Connection , Test-NetConnection不要直接抛出错误,只在连接失败时发出警告(但您不能使用第一个端口测试端口)。确切地说,使用 ErrorVariable 找不到错误,但这不会用 ErrorAction 抛出。
    我认为最好的应该是:

    @echo off
    PowerShell -Command "try { Test-NetConnection -ComputerName localhost -Port 80 -WarningAction Stop } catch { exit 1 }"
    if ERRORLEVEL 1 GOTO error
    echo Continue
    exit
    :error
    echo Error
    ERRORLEVEL如果连接被验证,则为 0,如果连接失败,则为 1(您当然可以设置您想要的退出代码)。

    关于powershell - 将 PowerShell cmdlet 的错误级别传递到批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65014052/

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