Windows批處理功能 bat

2022-07-17 13:12:18 字數 2675 閱讀 3252

什麼是批處理?

常見的.bat檔案就是批處理檔案。它是一種無格式檔案。(簡單理解)

批處理的作用就是自動地連續執行多條命令,檔案內容就是一條一條的命令。(功能和組成)

在命令提示符下輸入批處理檔案的名稱,或者雙擊該批處理檔案,系統會呼叫cmd.exe程式,按照該檔案中各個命令出現順序來逐個執行它們。(執行方式)

通常,使用批處理檔案【也被稱為批處理程式或指令碼】,可以簡化日常或重複性任務。(意義)

echo、@、call、pause、rem(可以用:代替)

echo:表示顯示/輸出此命令後的字元,類似c語言中的print。

echo off:表示在此語句後所有執行的命令都不顯示命令列本身,主要用於關閉回顯

@:與echo off類似,但是是加在每條命令列的最前面,表示執行時不顯示這一行的命令列(只能影響當前行)

call:呼叫另乙個批處理檔案(注意:如果不用call而直接呼叫別的批處理檔案,那麼執行完被呼叫批處理檔案後將無法返回當前檔案並執行當前檔案的後續命令)

pause:執行此命令會暫停批處理的執行,並在螢幕上顯示"press any key to continue..."的提示,等待使用者按任意鍵後繼續。

rem:表示此命令後的字元為解釋行(注釋),不執行

引數表示符:%

通過%[1-9]表示引數,引數是指在執行批處理檔案時在檔名後加的以空格(或者tab鍵)分割的字串。

其中,%0表示批處理檔案本身,%1-%9為按照順序表示引數

if、goto、choice、for是批處理檔案中比較高階的命令。

if是條件語句:用來判斷是否符合條件,從而決定執行不同的命令。3種常見形式:

等於/不等於

if "引數"=="字串" 待執行的命令

if not "引數"=="字串" 待執行的命令

​存在/不存在

if exist [path\]filename 待執行的命令

if not exist [path\]filename 待執行的命令

​判斷程式報錯碼

if errorlevel 《數字》 待執行的命令

goto將執行批處理檔案跳到goto所指定的標號(標號用冒號「:」,後面跟標準字串來定義)處,goto一般與if配合使用。

goto end

:end

echo this is the end.

注意:標號所在行不被執行。

choice可以讓使用者根據需要只輸入乙個字元(用於選擇),返回不同的errorlevel,然後與if errorlevel配合,根據使用者的選擇執行不同的命令。

choice [/c choices] [/n] [/cs] [/t timeout /d choice] [/m text]

​描述:

該工具允許使用者從選擇列表選擇乙個專案並返回所選項目的索引。

​引數列表:

/c   choices       指定要建立的選項列表。預設列表是 "yn"。

/n                 在提示符中隱藏選項列表。提示前面的訊息得到顯示,選項依舊處於啟用狀態。

/cs                 允許選擇分大小寫的選項。在預設情況下,這個工具是不分大小寫的。

/t   timeout       做出預設選擇之前,暫停的秒數。可接受的值是從 0 到 9999。如果指定了 0,就不會有暫停,預設選項會得到選擇。

/d   choice       在 nnnn 秒之後指定預設選項。字元必須在用 /c 選項指定的一組選擇中; 同時,必須用 /t 指定 nnnn。

/m   text         指定提示之前要顯示的訊息。如果沒有指定,工具只顯示提示。

/?                 顯示此幫助訊息。

注意:errorlevel 環境變數被設定為從選擇集選擇的鍵索引。列出的第乙個選擇返回 1,第二個選擇返回 2,等等。如果使用者按的鍵不是有效的選擇,該工具會發出警告響聲。如果該工具檢測到錯誤狀態,它會返回 255 的 errorlevel 值。如果使用者按 ctrl+break 或 ctrl+c 鍵,該工具會返回 0 的 errorlevel 值。在乙個批程式中使用 errorlevel 引數時,將引數降序排列。

​示例:

choice /?

choice /c ync /m "確認請按 y,否請按 n,或者取消請按 c。"

choice /t 10 /c ync /cs /d y

choice /c ab /m "選項 1 請選擇 a,選項 2 請選擇 b。"

choice /c ab /n /m "選項 1 請選擇 a,選項 2 請選擇 b。"

for迴圈命令,只要符合條件,它將多次執行同一命令。

語法:for %%variable in (set) do command [command-parameters]

其中:%%variable:指定乙個單一字母可替換的引數。因為for命令本身使用的變數也需要帶上%,加上bat的變數需要用%,所以此處在for語句中的變數需要用%%i的形式。

(set):指定乙個檔案或者一組檔案。可以使用萬用字元。

command:指定對每個檔案執行的命令。

command-parameters:為特定命令指定引數或命令列開關。

Windows批處理BAT指令碼

2 echo和 字元放在命令前將關閉命令回顯,無論是否為開啟狀態。開啟或關閉回顯 echo 輸出資訊 echo string 3 pause 玩遊戲的都知道,暫停的意思。顯示其他提示語 echo string pause nul 4 errorlevel 返回程式碼 echo errorlevel ...

Windows批處理程式bat

echo off 關閉回顯,否則指令碼中的命令都會輸出,關閉後只顯示結果。setlocal enabledelayedexpansion 在for迴圈中變數擴充套件時需要用到 copy y mstsc.cmd systemroot 將檔案複製到c windows目錄下面 regedit.exe s ...

bat批處理語法

echo 列印字串 注意 x不能寫跨行,因為bat預設每一行就是乙個完整的語句,相當於在c語言中每一行後面自動加個分號。echo on 對於這行之後的語句把語句和結果都全部列印。開始執行bat批處理的時候預設開啟。echo off 對於這行之後的語句不列印命令語句本身 注意轄域是這句話之後,不包括這...