1樓:day忘不掉的痛
有以下兩種解決方法:
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 enabledelayedexpansionfor /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)
2樓:
%errorlevel% 表示 for 語句執行前的 errorlevel 的值。
%errorlevel% 改為 !errorlevel!
或者 if 語句改為
if errorlevel 1 (echo %%i dead>>log.txt) else (echo %%i alive>>log.txt)
我在dos下執行批處理 echo %errorlevel% 為什麼返回值是echo is on?
3樓:匿名使用者
echo是個開關命令,你執行了就會開(或者關),所以會出現echo on
一樓說的對,執行完了(沒有問題)後返回值為0
返回值為20是普通狀態的嗎?
4樓:匿名使用者
因為 checkid.exe 執行成功,所以返回的 %errorlevel% 是 0
如果你要用checkid.exe的返回值,好像是這樣:
checkid.exe
if errorlevel 20 echo20
5樓:蕭霍
提示你回顯沒有開啟,在開頭寫入命令,@echo on就可以了
6樓:匿名使用者
@echo off
把echo 關了
dos 批處理命令errorlevel問題
7樓:匿名使用者
是這樣的,errorlevel返回的是上行命令的執**況。而你的第一句命令是判斷是否存在c盤根目錄,如果存在則goto yes,這是你所謂的執行正確,它直接到了yes標籤,自然不會執行你的if errorlevel這一句了。假設你不存在c:
\,在你看來第一條命令的errorlevel是1,事實上,無論是否存在這個資料夾,它的errorlevel都是0!另外,不是說errorlevel為0就是正確,1就是錯誤。而且一般的,0是執行成功,而非0才是執行錯誤,包括1,但不侷限於1。
bat裡的呼叫問題
用start試試吧,不加 wait 直接加一句 start x b.bat 不用call,如果在同一目錄 就直接 start b.bat,否則就上面內的,目錄自己容修改!不知道你想的是不是讓b在a的視窗裡執行又不影響a的執行?如果是的話勸你放棄了,bat的語句是逐條執行的,也就是一條語句一條語句的執...
批處理errorlevel用在if語句中無效
把那倆個 if 條件語句換個次序看看,也就是改成下面的!if errorlevel 1 goto 14if errorlevel 0 goto 13究竟是為什麼,我好想以前看過在verybat 這個論壇裡面看過一個id 英雄 的 人寫過一個教程,裡面詳細解釋了這個原因!第一種 if errorlev...
bat 指令碼 forfdelimsdelims的使用
echo off set a abaacadaaeaf set a a aa echo a 抄,3 a 2,3 a 3 pause 樓上別學我的 不能 你試試去掉tokens 就知道了 for f delims i in cd do set folder ni 請問這段 的意思,批處理。cd 當前路...