Loops 批量制作服务器乒乓球工具
我目前已经这样做了,但是for循环中出现了意外错误 请帮忙Loops 批量制作服务器乒乓球工具,loops,batch-file,for-loop,Loops,Batch File,For Loop,我目前已经这样做了,但是for循环中出现了意外错误 请帮忙 @ECHO OFF COLOR 1F TITLE (Ash's Script) Server Ping Pong rem --------------------------------------------------------------------------------------------------------------- ECHO Started %time% %date% > X:\Scripts\Se
@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 ---------------------------------------------------------------------------------------------------------------
如果ERRORLEVEL 0
始终为真
改用这个:
if not errorlevel 1
还可以将echo上的重定向更改为文件:
>>X:\Scripts\ServerPing.txt ECHO %%i ONLINE %time%
这消除了最后一个字符是(流的)数字时的问题
另一个问题是循环开始时会计算
%time%
,以便在日志中获取动态时间,然后启用延迟扩展并使用!时间代码>而不是%time%
最后的回音正确吗?您正在用小写字母指定脚本
目录,但在所有其他情况下都是uppercase@omgmogWindows不区分大小写您会遇到什么类型的意外错误?如果ERRORLEVEL 0始终为真,那么这是一个错误还是一个意外的结果?
。如果ERRORLEVEL为
或更高,则这是真的。(这对foxidrive来说是显而易见的,但对其他人来说可能不是这样)只是为了澄清jeb的评论:如果返回的errorlevel为50,那么从0到49(和50)的每个errorlevel也将测试为true。