幫助資訊:
退出 cmd.exe 程式(命令直譯器)或當前批處理指令碼。命令概括:exit [/b] [exitcode]
/b 指定要退出當前批處理指令碼而不是 cmd.exe。如果從乙個
批處理指令碼外執行,則會退出 cmd.exe
exitcode 指定乙個數字號碼。如果指定了 /b,將 errorlevel
設成那個數字。如果退出 cmd.exe,則用那個數字設定
過程退出**。
複製**
exit,意為「退出」;
/b,全英文batch(不確定);
code,意為「**」,exitcode就是「退出碼」;
引數詳解:
1.退出命令直譯器;
指令碼的執行都依賴直譯器,批處理依賴cmd.exe,vbs依賴wscript.exe,沒有直譯器,指令碼都不能執行。
@echo offexit 是退出直譯器,造成world不顯示,pause不執行。echo hello
exit
echo world
pause
複製**
2.退出當前批處理指令碼;
乍一看,覺得和第一沒什麼區別,但事實上區別很大。
試著執行下面的**,比較其中差別:
儲存兩個批處理,分別命名test、a;執行test.bat;
test.bat
@echo offa.batecho 這是test.bat
echo 呼叫a.bat之前的狀態
call a.bat
echo 呼叫a.bat之後的狀態
echo %errorlevel%
pause
複製**
@echo off現在把a.bat的內容替換成:echo.
echo 這是a.bat檔案
echo.
exit /b
複製**
@echo off再次執行test.batecho.
echo 這是a.bat檔案
echo.
exit /b 12
複製**
如果你細心的話,就會發現errorlevel的值變了,預設是0,/b 12之後就是12了。
沒錯,exit [/b] [exitcode]中[exitcode]就是用來設定,退出碼errorlevel的值。
那麼/b又有什麼用呢?
正如那句話所說,
要知道一件事物的重要性,那就看看沒有這件事物時世界會是怎樣。
繼續將a.bat的內容替換:
@echo off再次執行test.batecho.
echo 這是a.bat檔案
echo.
exit
複製**
結果,黑框一閃而過,因為這三條語句都沒有執行,
echo 呼叫a.bat之後的狀態因此exit /b是用來退出批處理指令碼的,而exit是用來退出直譯器的;echo %errorlevel%
pause
複製**
可以這麼理解,exit /b 退出子程序,而exit則退出父程序,子程序結束不影響父程序的執行,但是父程序結束那就是徹底的結束。
(當然,如果只有乙個程序,exit /b也是能結束父程序的)。
exit /b 一般和call 一起使用。
一日一教學 (14)檔案替換 replace
幫助資訊 替換檔案。replace drive1 path1 filename drive2 path2 a p r w replace drive1 path1 filename drive2 path2 p r s w u drive1 path1 filename 指定原始檔。drive2 p...
一日一結2012 5 2
今天去圖書館把作業系統概念借到了,期待很久,欣喜萬分。專業知識部分 今天主要學習了一下mfc六大關鍵技術,感覺講得不錯。主要的例子是以基於文件類的程式,感覺學到了東西。以前看孫新老師的書時是有點半知不解,看了這個資料讓我對mfc程式的內部有了更深一層的理解。課外知識部分 看完10000小時code ...
一日一結2012 5 6
今天天氣很熱,感覺已經進入夏天。看了galaxy 3 效能評測,不錯。專業知識部分 今天看了作業系統概念的虛擬記憶體,了解了虛擬記憶體的概念和原理,虛擬記憶體這種記憶體管理技術允許執行程序不必完全在記憶體中。而且,虛擬記憶體將記憶體抽象成乙個巨大的 統一的儲存陣列,進而將使用者看到的邏輯記憶體和物理...