bat問題,errorlevel為什麼總是

2022-01-09 12:10:21 字數 1418 閱讀 7990

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 當前路...