windows批處理中set命令的用法詳解
基礎模式
變量是一切編程的基礎,在批處理語言中,通過set設置變量,而在調(diào)用變量時,需要在變量兩端加上百分號,例如
set a=1 echo %a%
運行結果為
>set a=1
>echo 1
在運行批處理文件的時候,命令行會默認把每一行代碼都展示出來,如果想隱藏代碼,可以在這一行代碼前面加上@,或者直接在批處理代碼最前面加上echo off,以關閉回顯。
set除了可以設置變量之外,還可以刪除變量,只需set a= 后面不跟任何東西,那么a變量就會被刪除。
@set a=1 @set a= @echo %a%
這回的運行結果如下
>test.bat
ECHO 處于打開狀態(tài)。
由于每行代碼前面都填上了@,所以也就沒有回顯。同時a變成了空值,所以echo %a%也就等價于echo,從而返回一個echo狀態(tài)。
表達式模式
除了基礎用法之外,set還有兩個開關,分別是/a和/p,前者用于識別數(shù)值表達式,后者則用于外部輸入。
舉個例子
>set /a (1+2)*3/4 2
可見命令行的確識別了set /a后面的表達式,并且還給算出了結果。但這里也能看出命令行的一個問題,即只有整型計算,故而9/4=2。
下表按照優(yōu)先級順序列出了set支持的運算符。
類別 | |
---|---|
() | 分組 |
~ - | 一元運算符 |
* / % | 算數(shù)運算符 |
+ - | 算數(shù)運算符 |
<< >> | 邏輯移位 |
& | 按位與 |
^ | 按位異或 |
| | 按位或 |
= *= /= %= += - &= ^= |= <<= >>= | 賦值 |
, | 表達式分隔符 |
這個表本來是平平無奇的,但最后面有一個表達式分隔符,讓人感覺十分困惑,這東西是干嘛的?這東西可以讓set /a識別多條語句
>set /a pi=3, a=2*pi*15, b=pi*15*15 675 >echo %a% 90 >echo %pi% 3
變量輸入模式
開關/p可以起到讀取輸入值的作用,例如下面這組代碼
echo off set /p a=please input your value echo you input %a%
運行結果如下
>echo off
please input your value 12345
you input 12345
環(huán)境變量
環(huán)境變量可以理解為絕對路徑的一種映射,從而可以在任意位置引用。添加或刪除環(huán)境變量,可以右鍵此電腦->屬性->高級系統(tǒng)設置->高級選項卡->環(huán)境變量,然后就彈出環(huán)境變量的設置窗口了,最常用的是設置Path中的路徑。
在命令行中,輸入set命令,即可查看當前所有可用的環(huán)境變量,如果set后加上變量名,則可查看其對應的值。
>set TEMP TEMP=C:\Users\Laser\AppData\Local\Temp
這是Windows中用于存放臨時數(shù)據(jù)的環(huán)境變量。
此外,我們剛剛在命令行中創(chuàng)建的變量,也可歸入到環(huán)境變量范疇,只不過這個變量是臨時的,退出命令行就會消失而已。
>set a a=12345 ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Laser\AppData\Roaming
到此這篇關于windows批處理中set命令的用法詳解的文章就介紹到這了,更多相關批處理set命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!