windows批處理中set命令的用法詳解
基礎(chǔ)模式
變量是一切編程的基礎(chǔ),在批處理語言中,通過set設(shè)置變量,而在調(diào)用變量時(shí),需要在變量兩端加上百分號(hào),例如
set a=1 echo %a%
運(yùn)行結(jié)果為
>set a=1
>echo 1
在運(yùn)行批處理文件的時(shí)候,命令行會(huì)默認(rèn)把每一行代碼都展示出來,如果想隱藏代碼,可以在這一行代碼前面加上@,或者直接在批處理代碼最前面加上echo off,以關(guān)閉回顯。
set除了可以設(shè)置變量之外,還可以刪除變量,只需set a= 后面不跟任何東西,那么a變量就會(huì)被刪除。
@set a=1 @set a= @echo %a%
這回的運(yùn)行結(jié)果如下
>test.bat
ECHO 處于打開狀態(tài)。
由于每行代碼前面都填上了@,所以也就沒有回顯。同時(shí)a變成了空值,所以echo %a%也就等價(jià)于echo,從而返回一個(gè)echo狀態(tài)。
表達(dá)式模式
除了基礎(chǔ)用法之外,set還有兩個(gè)開關(guān),分別是/a和/p,前者用于識(shí)別數(shù)值表達(dá)式,后者則用于外部輸入。
舉個(gè)例子
>set /a (1+2)*3/4 2
可見命令行的確識(shí)別了set /a后面的表達(dá)式,并且還給算出了結(jié)果。但這里也能看出命令行的一個(gè)問題,即只有整型計(jì)算,故而9/4=2。
下表按照優(yōu)先級(jí)順序列出了set支持的運(yùn)算符。
| 類別 | |
|---|---|
| () | 分組 |
| ~ - | 一元運(yùn)算符 |
| * / % | 算數(shù)運(yùn)算符 |
| + - | 算數(shù)運(yùn)算符 |
| << >> | 邏輯移位 |
| & | 按位與 |
| ^ | 按位異或 |
| | | 按位或 |
| = *= /= %= += - &= ^= |= <<= >>= | 賦值 |
| , | 表達(dá)式分隔符 |
這個(gè)表本來是平平無奇的,但最后面有一個(gè)表達(dá)式分隔符,讓人感覺十分困惑,這東西是干嘛的?這東西可以讓set /a識(shí)別多條語句
>set /a pi=3, a=2*pi*15, b=pi*15*15 675 >echo %a% 90 >echo %pi% 3
變量輸入模式
開關(guān)/p可以起到讀取輸入值的作用,例如下面這組代碼
echo off set /p a=please input your value echo you input %a%
運(yùn)行結(jié)果如下
>echo off
please input your value 12345
you input 12345
環(huán)境變量
環(huán)境變量可以理解為絕對(duì)路徑的一種映射,從而可以在任意位置引用。添加或刪除環(huán)境變量,可以右鍵此電腦->屬性->高級(jí)系統(tǒng)設(shè)置->高級(jí)選項(xiàng)卡->環(huán)境變量,然后就彈出環(huán)境變量的設(shè)置窗口了,最常用的是設(shè)置Path中的路徑。

在命令行中,輸入set命令,即可查看當(dāng)前所有可用的環(huán)境變量,如果set后加上變量名,則可查看其對(duì)應(yīng)的值。
>set TEMP TEMP=C:\Users\Laser\AppData\Local\Temp
這是Windows中用于存放臨時(shí)數(shù)據(jù)的環(huán)境變量。
此外,我們剛剛在命令行中創(chuàng)建的變量,也可歸入到環(huán)境變量范疇,只不過這個(gè)變量是臨時(shí)的,退出命令行就會(huì)消失而已。
>set a a=12345 ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Laser\AppData\Roaming

到此這篇關(guān)于windows批處理中set命令的用法詳解的文章就介紹到這了,更多相關(guān)批處理set命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows控制臺(tái)(CMD/PowerShell)中文亂碼問題的解決方法
當(dāng)我們?cè)诳刂婆_(tái)啟動(dòng)一個(gè)bat腳本,腳本中有中文,打開一看全是亂碼,要永久解決 Windows 控制臺(tái)(CMD/PowerShell)的中文亂碼問題,并統(tǒng)一使用 UTF-8 編碼,可以按照以下步驟操作,這些方法適用于 Windows 10/11 系統(tǒng),需要的朋友可以參考下2025-09-09
批處理判斷是否為管理員權(quán)限如果不是則自動(dòng)獲取管理權(quán)限
有時(shí)編寫bat批處理時(shí)會(huì)用到判斷當(dāng)前是否為管理員權(quán)限以及自動(dòng)以管理員權(quán)限運(yùn)行,在這里記錄幾個(gè)常用的方法,需要的朋友可以參考下2024-07-07
Windows命令之tasklist命令用法詳解(Windows查看進(jìn)程)
tasklist命令顯示本地計(jì)算機(jī)或遠(yuǎn)程計(jì)算機(jī)上當(dāng)前正在運(yùn)行的進(jìn)程列表,命令結(jié)合篩選器一起使用,可以按照我們的需求進(jìn)行過濾,查找我們需要了解的進(jìn)程信息2025-03-03
bat 選項(xiàng)之修改ip的腳本代碼(讓用戶可以選擇操作并進(jìn)行判斷執(zhí)行)
在bat的編寫過程中,很多情況下需要根據(jù)用戶的判斷進(jìn)行相應(yīng)的操作,其實(shí)bat中加判斷并不難,我們可以通過參考別人的代碼就可以了2013-08-08
一個(gè)“靈異”批處理引發(fā)的思考加補(bǔ)充說明
這個(gè)語句讓偶理解了好半天: 我們知道批處理在運(yùn)行過程中,在讀取每條語句/執(zhí)行每個(gè)命令都會(huì)擴(kuò)充一次語句/命令里的變量。 我們來看看這個(gè)例子發(fā)生了什么事情:2008-05-05

