bat问题,errorlevel为什么总是 0?
@echooffSETLOCALENABLEDELAYEDEXPANSIONfor/f"tokens=1"%%iin(celist.txt)do(ping.exe%%i-...
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1" %%i in (celist.txt) do (
ping.exe %%i -n 1
if %errorlevel%==0 (echo %%i alive>>log.txt) else (echo %%i dead>>log.txt)
) 展开
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1" %%i in (celist.txt) do (
ping.exe %%i -n 1
if %errorlevel%==0 (echo %%i alive>>log.txt) else (echo %%i dead>>log.txt)
) 展开
3个回答
推荐于2017-10-06 · 知道合伙人数码行家
关注
展开全部
有以下两种解决方法:
1、用 if errorlevel 语句:
for /f %%i in (ip.txt) do ping %%i -n 1 & if errorlevel 1 (ECHO %%i FAIL >>ok.txt) else (ECHO %%i PASS >>ok.txt)
2、启用延迟变量扩展:
setlocal enabledelayedexpansion
for /f %%i in (ip.txt) do ping %%i -n 1 & if !errorlevel! EQU 1 (ECHO %%i FAIL >>ok.txt) else (ECHO %%i PASS >>ok.txt)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%errorlevel% 表示 for 语句执行前的 errorlevel 的值。
%errorlevel% 改为 !errorlevel!
或者 if 语句改为
if errorlevel 1 (echo %%i dead>>log.txt) else (echo %%i alive>>log.txt)
%errorlevel% 改为 !errorlevel!
或者 if 语句改为
if errorlevel 1 (echo %%i dead>>log.txt) else (echo %%i alive>>log.txt)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-05
展开全部
求同!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询