
- 批處理指令碼教程
- 批處理指令碼 - 首頁
- 批處理指令碼 - 概述
- 批處理指令碼 - 環境
- 批處理指令碼 - 命令
- 批處理指令碼 - 檔案
- 批處理指令碼 - 語法
- 批處理指令碼 - 變數
- 批處理指令碼 - 註釋
- 批處理指令碼 - 字串
- 批處理指令碼 - 陣列
- 批處理指令碼 - 決策
- 批處理指令碼 - 運算子
- 批處理指令碼 - 日期與時間
- 批處理指令碼 - 輸入/輸出
- 批處理指令碼 - 返回程式碼
- 批處理指令碼 - 函式
- 批處理指令碼 - 程序
- 批處理指令碼 - 別名
- 批處理指令碼 - 裝置
- 批處理指令碼 - 登錄檔
- 批處理指令碼 - 網路
- 批處理指令碼 - 列印
- 批處理指令碼 - 除錯
- 批處理指令碼 - 日誌記錄
- 批處理指令碼資源
- 批處理指令碼 - 快速指南
- 批處理指令碼 - 有用資源
- 批處理指令碼 - 討論
批處理指令碼 - 變數
批處理檔案中有兩種型別的變數。一種是引數,可以在呼叫批處理檔案時傳遞;另一種是透過set命令設定。
命令列引數
批處理指令碼支援命令列引數的概念,即在呼叫批處理檔案時可以向其傳遞引數。這些引數可以透過變數%1、%2、%3等等在批處理檔案中呼叫。
以下示例顯示一個批處理檔案,它接受3個命令列引數並將它們回顯到命令列螢幕。
@echo off echo %1 echo %2 echo %3
如果上述批處理指令碼儲存在一個名為test.bat的檔案中,我們執行批處理命令如下:
Test.bat 1 2 3
以下是批處理檔案執行時在命令提示符中顯示的螢幕截圖。

上述命令產生以下輸出。
1 2 3
如果我們執行批處理命令如下:
Example 1 2 3 4
輸出將與上面相同。但是,第四個引數將被忽略。
Set命令
初始化變數的另一種方法是使用“set”命令。以下是set命令的語法。
語法
set /A variable-name=value
其中,
變數名 是您要設定的變數的名稱。
值 是需要為變數設定的值。
/A – 如果值需要是數字型別,則使用此開關。
以下示例顯示了set命令的一種簡單用法。
示例
@echo off set message=Hello World echo %message%
在上面的程式碼片段中,定義了一個名為message的變數,並將其值設定為“Hello World”。
要顯示變數的值,請注意變數需要用%符號括起來。
輸出
上述命令產生以下輸出。
Hello World
使用數值
在批處理指令碼中,也可以定義一個變數來儲存數值。這可以透過使用/A開關來實現。
以下程式碼顯示了使用/A開關設定數值的一種簡單方法。
@echo off SET /A a = 5 SET /A b = 10 SET /A c = %a% + %b% echo %c%
我們首先將兩個變數a和b的值分別設定為5和10。
我們將這些值相加並存儲在變數c中。
最後,我們顯示變數c的值。
上述程式的輸出將是15。
所有算術運算子都可以在批處理檔案中使用。以下示例顯示瞭如何在批處理檔案中使用算術運算子。
@echo off SET /A a = 5 SET /A b = 10 SET /A c = %a% + %b% echo %c% SET /A c = %a% - %b% echo %c% SET /A c = %b% / %a% echo %c% SET /A c = %b% * %a% echo %c%
上述命令產生以下輸出。
15 -5 2 50
區域性變數與全域性變數
在任何程式語言中,都可以選擇將變數標記為具有某種作用域,即可以訪問它們的程式碼段。通常,具有全域性作用域的變數可以在程式的任何地方訪問,而區域性作用域變數具有定義的邊界,在該邊界內可以訪問它們。
DOS指令碼也對區域性和全域性作用域變數進行了定義。預設情況下,變數對整個命令提示符會話都是全域性的。呼叫SETLOCAL命令可以使變數對指令碼的作用域區域性。呼叫SETLOCAL後,任何變數賦值在呼叫ENDLOCAL、呼叫EXIT或執行到達指令碼中的檔案結尾(EOF)時都會恢復。以下示例顯示了在指令碼中設定區域性變數和全域性變數時的區別。
示例
@echo off set globalvar = 5 SETLOCAL set var = 13145 set /A var = %var% + 5 echo %var% echo %globalvar% ENDLOCAL
關於上述程式,需要注意以下幾點。
“globalvar”定義為全域性作用域,在整個指令碼中都可用。
“var”變數定義在區域性作用域中,因為它位於“SETLOCAL”和“ENDLOCAL”塊之間。因此,一旦執行“ENDLOCAL”語句,此變數將被銷燬。
輸出
上述命令產生以下輸出。
13150 5
您會注意到,命令echo %var%不會產生任何輸出,因為在ENDLOCAL語句之後,“var”變數將不再存在。
使用環境變數
如果您有要在多個批處理檔案中使用的變數,那麼最好使用環境變數。定義環境變數後,可以透過%符號訪問它。以下示例顯示如何檢視系統上定義的JAVA_HOME。JAVA_HOME變數是一個關鍵元件,通常被各種應用程式廣泛使用。
@echo off echo %JAVA_HOME%
輸出將顯示JAVA_HOME目錄,這取決於不同的系統。以下是一個輸出示例。
C:\Atlassian\Bitbucket\4.0.1\jre