有UPS电源的windows 10 系统 通过网络判断是否停电需要自动关机

创建一个txt文本文档,写入下面代码,保存为ANSI编码的bat文件

@echo off
setlocal enabledelayedexpansion

set "failCount=0"
set "maxFails=3"

rem 定义要 ping 的 IP 地址
set "ips=192.168.1.2 192.168.1.3 192.168.1.4"

:loop
set "allFailed=true"  rem 假设所有 IP 都失败

rem 输出当前时间
echo 当前时间: %date% %time%

for %%i in (%ips%) do (
    rem 执行 ping 命令并检查输出
    ping -n 1 %%i | find "TTL=" >nul
    if !errorlevel! equ 0 (
        echo %%i 可访问。
        set "allFailed=false"  rem 如果有一个 IP 可达,将 allFailed 设置为 false
    ) else (
        echo %%i 无法访问。
    )
)

rem 如果所有 IP 地址都无法访问,增加失败计数
if "!allFailed!"=="true" (
    set /a failCount+=1
) else (
    set "failCount=0"  rem 如果有可达的 IP,重置失败计数
)

rem 如果连续失败次数达到 3 次,则关机
if !failCount! geq !maxFails! (
    echo 所有地址连续3次 ping 失败。将在1分钟后关机。
    timeout /t 60
    shutdown /s /t 0
)

echo 将在 3 分钟后进行下一次检查。
timeout /t 180
goto loop
sanradar
sanradar
文章: 104

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注