1樓:匿名使用者
在cmd視窗輸入 if/? 回車顯示幫助如下,dos命令基本都可以通過這個方法取得幫助。
執行批處理程式中的條件處理。
if [not] errorlevel number command
if [not] string1==string2 command
if [not] exist filename command
not 指定只有條件為 false 的情況下, windows xp 才
應該執行該命令。
errorlevel number 如果最後執行的程式返回一個等於或大於
指定數字的退出編碼,指定條件為 true。
string1==string2 如果指定的文字字串匹配,指定條件為 true。
exist filename 如果指定的檔名存在,指定條件為 true。
command 如果符合條件,指定要執行的命令。如果指定的
條件為 false,命令後可跟一個執行 else
關鍵字後的命令的 else 命令。
else 子句必須在 if 之後出現在同一行上。例如:
if exist filename. (
del filename.
) else (
echo filename. missing.
)因為 del 命令需要用一個新行終止,以下子句不會有效:
if exist filename. del filename. else echo filename. missing
由於 else 命令必須與 if 命令的尾端在同一行上,以下子句也
不會有效:
if exist filename. del filename.
else echo filename. missing
如果都放在同一行上,以下子句有效:
if exist filename. (del filename.) else echo filename. missing
如果命令副檔名被啟用,if 會如下改變:
if [/i] string1 compare-op string2 command
if cmdextversion number command
if defined variable command
其中,比較運算子可以是:
equ - 等於
neq - 不等於
lss - 小於
leq - 小於或等於
gtr - 大於
geq - 大於或等於
及 /i 開關;如果該開關被指定,則說明要進行的字串比較不分
大小寫。/i 開關可以用於 if 的 string1==string2 的形式上。這些
比較都是通用的;原因是,如果 string1 和 string2 都是由數字
組成的,字串會被轉換成數字,進行數字比較。
cmdextversion 條件的作用跟 errorlevel 的一樣,除了它
是在跟與命令副檔名有關聯的內部版本號比較。第一個版本
是 1。每次對命令副檔名有相當大的增強時,版本號會增加一個。
命令副檔名被停用時,cmdextversion 條件不是真的。
如果已定義環境變數,defined 條件的作用跟 exists 的一樣,
除了它取得一個環境變數,返回的結果是 true。
如果沒有名為 errorlevel 的環境變數,%errorlevel%
會擴充為 errolevel 當前數值的字串表示式;否則,您會得到
其數值。執行程式後,以下語句說明 errorlevel 的用法:
goto answer%errorlevel%
:answer0
echo program had return code 0
:answer1
echo program had return code 1
您也可以使用以上的數字比較:
if %errorlevel% leq 1 goto okay
如果沒有名為 cmdcmdline 的環境變數,%cmdcmdline%
將在 cmd.exe 進行任何處理前擴充為傳遞給 cmd.exe 的原始
命令列;否則,您會得到其數值。
如果沒有名為 cmdextversion 的環境變數,
%cmdextversion% 會擴充為 cmdextversion 當前數值的
字串符表示式;否則,您會得到其數值。
2樓:
求反用if not
if not "%a%"=="1" goto aaa如果你是想按1執行aaa那麼
if "%a%"=="1" goto aaa 是正確的下面來舉個if "%a%"=="1" goto aaa 例子吧@echo off
:bbset/p a=請輸入:
if "%a%"=="1" goto aaaecho 輸入錯誤!
goto bb
:aaa
echo 這裡是aaa
pause
下面再來舉個if not "%a%"=="1" goto aaa 例子吧
@echo off
:bbset/p a=請輸入:
if not "%a%"=="1" goto aaaecho 你輸入的是1
pause
goto end
:aaa
echo 這裡是aaa
pause
希望這兩個例子能夠對你有些幫助,從而在批處理中能夠靈活運用這一複合語句。
3樓:匿名使用者
得加空格:
if "%a%" neq "1" goto aaa例如:::═════代═══碼═══開═══始═════@echo off
set /a a=2
if "%a%" neq "1" goto aaaecho no
pause&exit
:aaa
echo hello
pause
::═════代═══碼═══結═══束═════
4樓:匿名使用者
if "%a%" neq "1" goto :eofgoto aaa
:aaa
或if "%a"=="1" goto aaagoto :eof
:aaa
批處理問題,批處理問題
setlocal 設定本地環境變數 setlocal enabledelayedexpansion 啟用變數延遲,可以在同一語句內部直接使用上一次改變後的變數 tasklist命令用來顯示執行在本地或遠端計算機上的所有程序,帶有多個執行引數。使用格式 tasklist s system u user...
批處理改名的問題
不好意思,沒有完全看清楚lz的問題,已經修改。把批處理檔案同.txt,dat檔案放在一個目錄裡,執行。修改後的 echo off setlocal enabledelayedexpansionset z 0000000000 for f delims i in dir txt dat b do se...
批處理搜尋檔案的問題
例如 我想在d盤下搜尋 exe吧,我先在批處理裡設定好然後自動執行搜尋。不知道能否實現?還有要是能實現,能否自主刪除掉這個 exe這個檔案呢?假設你的 exe 123.exe,下面你可以把123.exe改成你的 echo off for r d i in do pushd i if exist 12...