0

我目前已经做到了,但是 for 循环中有一个意外错误。

请帮忙。

@ECHO OFF
COLOR 1F
TITLE (Ash's Script) Server Ping Pong

rem ---------------------------------------------------------------------------------------------------------------

ECHO Started %time% %date% > X:\Scripts\ServerPing.txt

rem ---------------------------------------------------------------------------------------------------------------

FOR /f "tokens=*" %%i in (X:\Scripts\ComputerLists\ServerList.csv) DO (
    PING %%i -n 1 -w 3
    IF ERRORLEVEL 0 (
        ECHO %%i ONLINE %time%>> X:\Scripts\ServerPing.txt 
    ) ELSE ( 
        ECHO %%i OFFLINE %time%>> X:\scripts\ServerPing.txt
    )
)

rem ---------------------------------------------------------------------------------------------------------------
4

1 回答 1

1

IF ERRORLEVEL 0总是正确的。

改用这个:

if not errorlevel 1

还将 echo 上的重定向更改为文件:

>>X:\Scripts\ServerPing.txt ECHO %%i ONLINE %time%

当最后一个字符是数字(流的)时,这消除了问题

另一个问题是%time%在循环开始时评估 - 在日志中获取动态时间然后启用延迟扩展并使用!time!而不是%time%

于 2013-10-07T08:56:30.883 回答