1、call 命令問題調試
調試:在c:\根目錄創建1.bat,2.bat。當調用與被調用的文件在同一個目錄下時,不用制定路徑。
問題(1)
新建1.bat,2.bat並放在c盤根目錄
1.bat內容:
@echo off
echo 調試1.bat使用call調用2.bat之後是否直接從頭運行被調用的批處理程序2.bat。
echo ~~~~~~~~~~~~~~~~~~~~~~~~~
echo ~~~~~~~~~~~~~~~~~~~~~~~~~
echo ~~~~~~~~~~~~~~~~~~~~~~~~~
echo 這是1.bat的第一句命令。
echo 下面是命令call c:\2.bat。
pause
cls
rem 清屏命令
call c:\2.bat
rem 路徑爲c盤根目錄,當調用與被調用的文件在同一個目錄下時,不用制定路徑。
pause
echo ~~~~~~~~~~~~~~~~~~~~~~~~~
echo ~~~~~~~~~~~~~~~~~~~~~~~~~
echo 若是上面的顯示的是:
echo 這是2.bat的第一句話。
echo 這是2.bat的第二句話。
echo 2.bat運行完畢。
echo 說明1.bat使用call調用2.bat之後是直接從頭運行被調用的批處理程序2.bat的。
pause
cls
echo 問題一測試完成。
echo 按任意鍵退出。
pause
exit
rem 推出程序
2.bat內容
@echo off
echo 這是2.bat的第一句話。
echo 這是2.bat的第二句話。
echo 2.bat運行完畢。
(3)
@echo off
echo 「call 命令接受用做調用目標的標籤。」是不是指在1.bat中能夠含有call :label,那麼call
:label與goto :label有什麼區別。
echo 第一句話
echo 第二句話
echo 使用call跳到第四句話
pause
call jumper
echo 第三句話
:jumper
echo 第四句話
echo ~~~~~~~~~~~~~~~~~
echo 若是顯示的是「第四句話」,而且不顯示「第三句話」證實call能夠調用label
pause
exit
運行界面以下:
按任意鍵,顯示:
圖顯示錯誤:’jumper’不是內部或外部命令,也不是可運行的程序
有錯誤提示可推斷出,「用做調用目標的標籤」指的是內部或者外部命令,即dos的命令,可運行的程序指.com .bat結尾的可執行程序。
改成以下語句測試:
@echo off
echo 「call 命令接受用做調用目標的標籤。」
echo 第一句話
echo 第二句話
pause
call ver
rem ver爲顯示版本的命令,此處是爲了測試方便,也可使用dir目錄命令查看一下。效果同樣的。
echo 第三句話
echo 第四句話
echo 按任意鍵退出
pause
exit
顯示以下:
測試成功。
2、start命令調試
問題1:
@echo off
start ver
pause
顯示界面以下:
@echo off
ver
pause
顯示界面以下:
測試結果:使用start會從新彈出一個窗口。
批處理命令教程——簡單批處理內部命令
批處理是什麼?
批處理,也稱爲批處理腳本,英文譯爲BATCH,批處理文件後綴BAT就取的前三個字母。它的構成沒有固定格式,遵照如下這條:每一行可視爲一個命令,每一個命令裏能夠含多條子命令,從第一行開始執行,直到最後一行結束,它運行的平臺是DOS。簡單的說,它的做用就是自動的連續執行多條命令,批處理文件的內容就是一條一條的命令。好比你想執行幾條dos命令(批處理的運行平臺的dos),你能夠把那幾條命令寫成一個批處理,運行的時候它就會逐條執行。
建立批處理文件
創建一個任何格式文件,後綴名改爲.bat便可。在文件上右擊,編輯,能夠對批處理進行修改編輯,雙擊直接運行文件。
一、Echo
功能:打開關閉回顯功能,或顯示消息。默認顯示回顯。
語法:echo [] [message]
經常使用:echo off關閉回顯,能夠不顯示咱們的命令。
注意:echo命令默認是顯示回顯因此***編程的時候第一句都是@echo off
二、@ 命令
功能:不顯示@後面的命令
經常使用:經常使用命令就是在每一句代碼前面都加上@命令,不顯示任何一句命令。開頭使用了echo off,照樣能夠不顯示咱們的命令。
三、Pause
功能:運行 Pause 命令時,將顯示下面的消息:
Press any key to continue . . .
經常使用:用於交互示提醒或者調試程序,至關於下斷吧。
注意:命令只是在這裏暫停,當你按下任意鍵之後程序回繼續執行後面的語句。
四、rem ,::
功能:註釋命令。
五、goto
功能:跳轉到標籤,而後程序將從下一行開始執行。
語法:goto label 標籤以「:」開頭。
六、call
功能:調用另外一個批處理程序。call 命令接受用做調用目標的標籤。
語法:call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
注意:call能夠調用自身,就是能夠生成死循環。
7.start 命令
調用外部程序,全部的DOS命令和命令行程序均可以由start命令來調用。
八、If 命令
有三種格式:
一、if "參數" == "字符串" 待執行的命令
參數若是等於指定的字符串,則條件成立,運行命令,不然運行下一句。(注意是兩個等號)
如if "%1"=="a" format a:
if =={} goto noparms
if =={} goto noparms
二、if exist 文件名 待執行的命令
若是有指定的文件,則條件成立,運行命令,不然運行下一句。
如if exist config.sys edit config.sys
if exist c:\boot.ini ver
文件名可制定路徑,若是不制定即爲當前目錄。
三、if errorlevel / if not errorlevel 數字 待執行的命令
若是返回碼等於指定的數字,則條件成立,運行命令,不然運行下一句。
如if errorlevel 2 goto x2
DOS程序運行時都會返回一個數字給DOS,稱爲錯誤碼errorlevel或稱返回碼,常見的返回碼爲0、1。
九、管道命令|、>、>>
| 的做用,就是把前一命令的輸出當後一命令的輸入來用
| more 顯示滿屏後暫停,當按回車時,變成一行一行的出現;按下空格鍵時一屏幕一屏幕顯示,直到所有顯示完爲止;按其餘鍵自動中止返回DOS。
more 和type命令的異同
他們均可以顯示內容,more是一屏幕一屏幕的顯示,type是一次所有打開顯示。
>、>>
都是輸出重定向命令,就是把前面命令的輸出寫入到一個文件中。若是沒有此文件名,會自動創建。這兩個命令的惟一區別是,>會清除掉原有文件中的內容後把新的內容寫入原文件,而>>只會另起一行追加新的內容到原文件中,而不會改動其中的原有內容。
十、組合命令&、&&、||
&
它的做用是用來鏈接n個DOS命令,並把這些命令按順序執行,而不論是否有命令執行失敗。
&&
與&命令不一樣之處在於,它在從前日後依次執行被它鏈接的幾個命令時會自動判斷是否有某個命令執行出錯,一旦發現出錯後將不繼續執行後面剩下的命令。
||
這個命令的用法和&&幾乎同樣,但做用恰好和它相反:利用這種方法在執行多條命令時,當遇到一個執行正確的命令就退出此命令組合,再也不繼續執行下面的命令。
還有一個for命令,咱們單獨寫一篇文章介紹。學了幾天批處理,感受到批處理這東西也不是太難,dos命令學好了掌握批處理很容易。
學習批處理的重點是通道,組合,if命令,for命令,還有就是參數的使用。把命令介紹完了之後咱們會在之後的學習中用一些實例去講,那樣跟容易理解。編程