我目前已经做到了,但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 ---------------------------------------------------------------------------------------------------------------
答案 0 :(得分:1)
IF ERRORLEVEL 0
永远是真的。
请改用:
if not errorlevel 1
同时将echo上的重定向更改为文件:
>>X:\Scripts\ServerPing.txt ECHO %%i ONLINE %time%
当最后一个字符是(流的)数字
时,这消除了问题另一个问题是,在循环开始时评估%time%
- 在日志中获取动态时间然后启用延迟扩展并使用!time!
代替%time%