在上期分享的內容中,咱們已經掌握了基礎理論知識,今天咱們將繼續瞭解和學習與Windows Batch有關的知識和編程方法,如何編寫和運行Windows Batch程序,腳本語言的入門方式等,從而可以更加順利地投入到從此的開發和探究中。html
上期內容回顧>>Batch入門教程丨部署與Hello World(上)編程
入門函數
入門,進入門,進入這扇門,進入這樣一扇(門框+門板+門鈴+門鎖),使用腳的指定部位完成動做以進入主函數,kkkkk。學習
入門概述3d
入門是一切的起點,這些咱們都知道。在入門這一章節中,您將首先接觸三個簡單的指令:echo、pause、exit。這些指令足夠您編寫一些可以顯示信息(例如顯示Hello World!)的程序,可是卻遠遠不夠於正常編程。固然,一切都是來源於基礎的,因此本章節能夠算是比較重要的。htm
重要的並不在於內容,而是理解。若是您看不懂本章節的某些句子,您能夠嘗試多讀幾遍,努力去理解。若是您實在沒法理解,歡迎告訴筆者,筆者會一一詳細回覆的。blog
Hello World!教程
Hello World!,這多是每個入門者都會編寫的第一個程序。它們每每只是一個簡單的輸出,可是卻表明着無數的成功和沒法比擬的喜悅。在Batch中,您也能夠編寫Hello World。進程
建立Batch文件ci
建立Batch文件有不少種,可是本質就是更改擴展名。在Windows 10系統中,若要顯示擴展名,請在資源管理器中這樣選擇:
若是您使用是Windows 7,請按照以下方法進行(用Windows 10來演示):
這樣,您的文件就會多出了一個擴展名後綴,建立批處理文件就簡單了。首先,右鍵選擇「新建」- 「新建文本文檔」:
而後將您的文本文檔重命名,將.txt後綴更改成.bat 或者.cmd。這二者只有名稱上的區別,相信我。
在彈出的對話框選擇「肯定」。這個對話框的意思是說,避免您誤更改了擴展名,又忘記了原先的擴展名,那麼就不能再運行之前的程序了。
這樣,您就獲得了一個嶄新的Batch文件!咱們右鍵它,選擇Open with Code,這樣就來到了它的編輯頁面:
開始編寫
接下來咱們能夠輸入咱們的代碼了:
這是一行echo指令,它的參數是後面的一大串信息Hello World!。這是最簡單的指令之一,它的做用是將後面的參數直接看成迴響打印出來。與其它指令不同,echo的參數即便有空格也不會被錯誤識別,由於它的做用實在是太簡單了,所以不可能會有多個參數。
最後一行是exit指令,即退出。這是一個流程控制性指令,它的做用是對會話進行結束,經常表現爲關閉窗口。咱們給出定義:
流程控制性,是指對編程處理的流程有控制做用的指令,例如exit爲退出,call 爲轉入,pause爲暫停。
爲了不本系列的內容定義過多致使冗雜,筆者在之後的正文中會避免使用新的名詞。
咱們的Hello World完成了,接下來咱們進入對單獨指令的深度剖析中。
echo
echo是一個回顯指令,它用來打印一些內容,例如,執行。
須要注意的是,echo不能輸出off或者on(可是能夠輸出相似於offer,is on 之類的含它們的組合)。
關閉回顯
爲了不源碼在執行過程當中會被輸出,咱們一般關閉回顯。上文中的Hello World程序在沒有關閉回顯的時候是這樣的:
這可不是我在打指令,而是整個批處理文件運行的結果。這些就叫作「回顯」。
可是當咱們在開頭加入echo off(沒有@),狀況就不同了:
咱們獲得了與先前相似的輸出,可是咱們卻發現echo off自己的執行依然看獲得回顯,這樣咱們的@就起到做用了,它隱藏單條指令的回顯。
這也就意味着咱們在最開頭加上@echo off就至關因而把每一行指令前面都加上@。
pause
pause在上面已經做了解釋,可是它的原理並無咱們說的那麼複雜。在help中對它的解釋只有一行,示例一行:
Suspends processing of a batch program and displays the message
Press any key to continue . . .
就是顯示按任意鍵繼續... 並暫停執行的一個指令。
exit
exit執行後會退出當前會話,由於沒有其它的特殊措施,因此通常表現爲窗口被關閉。可是若是一個批處理是被調用的:
注:call指令會在之後的進階中學到,如今您只須要知道它是一個能夠調用其它批處理文件的指令,也就是說能夠在一個批處理文件中執行另外一個批處理而不打開新的窗口。
這樣作,一旦調用b.bat就會直接退出(不是退出b.bat而是退出整個程序,即關閉窗口),所以咱們獲得的仍是一個閃框(咱們之後就叫「忽然閃過的黑色或者其它別的顏色的一個控制檯窗口」爲閃框吧!)。
可是當咱們把b.bat裏的exit加入一個參數:/b 233
這樣咱們獲得的結果就不同了。咱們竟然停留住了整個窗口,而且顯示This is B!和按任意鍵繼續...這是爲何呢?
退出當前進程
參數/b指定一個退出的代碼,稱爲exitCode。exit /b [exitCode] 相似於其它語言中函數的return同樣,返回一個值(不過 exitCode 只能爲數字),而且執行之後進程就結束了。
若是你不清楚其它語言中函數的return也不要緊,看看下面這個例子:
相似。
若是咱們不加上這個參數(/b),那麼退出的會是整個程序。可是咱們加上,咱們退出的就僅僅是當前的程序。若是咱們單獨執行b.bat,咱們獲得的是一個閃框,由於它自己被本身的exit給結束了。可是當咱們用a.bat去調用b.bat的時候,exit /b 233只會退出當前程序,因而b.bat調用後遇到了exit /b 233,退出了b.bat,繼續執行a.bat的call下面的代碼,即pause。
上述咱們的流程用圖來表示是這樣的:
可是若是咱們在b.bat裏的exit沒有帶上/b參數,它退出的將是整個程序:
此外,exitCode還有另外的做用。例如上面,咱們執行了exit /b 233,則表明咱們的exitCode就是233,這樣,在a.bat內的%ERRORLEVEL%會被設置爲這個exitCode即%ERRORLEVEL% == 233。
至此,入門部分就結束了。接下來咱們將學習的是進階,在後續的進階文章分享中,您將會學習到更多的流程管理,以及有關邏輯判斷等知識,你們敬請期待。