批次腳本 - 變數

您好,未來的編程師們!今天,我們將深入探索批次腳本變數的精彩世界。作為你們親切鄰居的電腦老師,我在這裡指引你們一步步走過這個旅程。別擔心如果你之前從未編過程序——我們會從最基礎的知識開始,然後逐步提升。所以,拿起你們最喜歡的飲料,我們開始吧!

Batch Script - Variables

變數是什麼?

在我們深入批次腳本變數的具體內容之前,讓我們先了解變數到底是什麼。可以把變數想像成是儲存信息的容器。就像你們可能會用一個盒子來存放你們最喜歡的玩具一樣,我們在程序中用變數來儲存數據。

命令列參數

讓我們從一些有趣的東西開始——命令列參數!這些就像是我們在運行批次腳本時發送給腳本的小消息。

示例 1:你好,名字!

@echo off
echo Hello, %1!

將這段代碼保存為 greet.bat 並這樣運行:greet.bat John

這裡發生了什麼?我們腳本中的 %1 被我們提供的第一个參數(在這個例子中是 "John")替換。所以,腳本會說 "Hello, John!"

示例 2:多個參數

@echo off
echo First argument: %1
echo Second argument: %2
echo Third argument: %3

將這段代碼保存為 args.bat 並這樣運行:args.bat apple banana cherry

這個腳本會顯示:

First argument: apple
Second argument: banana
Third argument: cherry

每個 %n(其中 n 是一個數字)代表按順序提供的參數。

set 指令

set 指令是我們在批次腳本中創建變數的魔法棒。讓我們看看它是如何工作的!

示例 3:創建一個簡單的變數

@echo off
set message=Hello, World!
echo %message%

當你運行這個腳本時,它會顯示 "Hello, World!"。set 指令創建了一個名為 message 的變數並將值 "Hello, World!" 賦予它。然後我們使用 %message% 來顯示其內容。

示例 4:用戶輸入

@echo off
set /p name=What's your name?
echo Nice to meet you, %name%!

set 指令與 /p 标誌一起使用允許我們提示用戶輸入。這個腳本會詢問用戶的名字,然後向他們問候。

使用數值

批次腳本也可以處理數字!讓我們探討一些數學運算。

示例 5:基本算術

@echo off
set /a result=5+3
echo 5 + 3 = %result%

set /a result=10-4
echo 10 - 4 = %result%

set /a result=6*2
echo 6 * 2 = %result%

set /a result=15/3
echo 15 / 3 = %result%

/a 标誌告訴 set 我們正在處理算術。這個腳本展示了加法、減法、乘法和除法。

示例 6:更複雜的計算

@echo off
set /a result=(10+5)*2
echo (10 + 5) * 2 = %result%

set /a result=20%%3
echo 20 %% 3 = %result%

在這裡,我們使用括號來表示運算順序,並使用 %% 來表示取模(除法的餘數)。

局部變數與全局變數

在批次腳本中,變數通常是全局的,意味著它們在整個腳本中都可以訪問。然而,我們可以在代碼塊內創建局部變數。

示例 7:全局變數與局部變數

@echo off
set global_var=I'm global!

setlocal
set local_var=I'm local!
echo Inside block: %local_var%
echo Global variable: %global_var%
endlocal

echo Outside block: %local_var%
echo Global variable: %global_var%

這個腳本展示了局部變數只在其塊內(在 setlocalendlocal 之間)可訪問,而全局變數則在任何地方都可以訪問。

使用環境變數

環境變數是特殊的變數,Windows 用它們來存儲系統範圍的信息。

示例 8:顯示環境變數

@echo off
echo Your username is: %USERNAME%
echo Your home directory is: %USERPROFILE%
echo The current date is: %DATE%
echo The current time is: %TIME%

這個腳本顯示了一些常見的環境變數。Windows 為我們提供了許多這樣的變數以供使用。

示例 9:創建自定義環境變數

@echo off
setx MY_CUSTOM_VAR "Hello from the environment!"
echo %MY_CUSTOM_VAR%

setx 指令用於創建永久的環境變數。請注意,你可能需要打開一個新的命令提示符才能看到變化。

結論

恭喜你們!你們已經踏出了進入批次腳本變數世界的第一步。記住,熟能生巧,所以不要害怕用這些示例進行實驗並創建有自己特色的腳本。

這裡是我們學到的命令的快速參考表:

指令 描述
%n 訪問命令列參數
set 創建或修改變數
set /p 創建帶有用户輸入的變數
set /a 执行算術運算
setlocal 開始局部變數塊
endlocal 結束局部變數塊
setx 創建環境變數

快樂編程,願你的變數總是定義得清晰明了!

Credits: Image by storyset