windows批處理中set命令的用法詳解
基礎(chǔ)模式
變量是一切編程的基礎(chǔ),在批處理語言中,通過set設(shè)置變量,而在調(diào)用變量時(shí),需要在變量兩端加上百分號,例如
set a=1 echo %a%
運(yùn)行結(jié)果為
>set a=1
>echo 1
在運(yùn)行批處理文件的時(shí)候,命令行會默認(rèn)把每一行代碼都展示出來,如果想隱藏代碼,可以在這一行代碼前面加上@,或者直接在批處理代碼最前面加上echo off,以關(guān)閉回顯。
set除了可以設(shè)置變量之外,還可以刪除變量,只需set a= 后面不跟任何東西,那么a變量就會被刪除。
@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ù)值表達(dá)式,后者則用于外部輸入。
舉個(gè)例子
>set /a (1+2)*3/4 2
可見命令行的確識別了set /a后面的表達(dá)式,并且還給算出了結(jié)果。但這里也能看出命令行的一個(gè)問題,即只有整型計(jì)算,故而9/4=2。
下表按照優(yōu)先級順序列出了set支持的運(yùn)算符。
類別 | |
---|---|
() | 分組 |
~ - | 一元運(yùn)算符 |
* / % | 算數(shù)運(yùn)算符 |
+ - | 算數(shù)運(yùn)算符 |
<< >> | 邏輯移位 |
& | 按位與 |
^ | 按位異或 |
| | 按位或 |
= *= /= %= += - &= ^= |= <<= >>= | 賦值 |
, | 表達(dá)式分隔符 |
這個(gè)表本來是平平無奇的,但最后面有一個(gè)表達(dá)式分隔符,讓人感覺十分困惑,這東西是干嘛的?這東西可以讓set /a識別多條語句
>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)境變量可以理解為絕對路徑的一種映射,從而可以在任意位置引用。添加或刪除環(huán)境變量,可以右鍵此電腦->屬性->高級系統(tǒng)設(shè)置->高級選項(xiàng)卡->環(huán)境變量,然后就彈出環(huán)境變量的設(shè)置窗口了,最常用的是設(shè)置Path中的路徑。
在命令行中,輸入set命令,即可查看當(dāng)前所有可用的環(huán)境變量,如果set后加上變量名,則可查看其對應(yīng)的值。
>set TEMP TEMP=C:\Users\Laser\AppData\Local\Temp
這是Windows中用于存放臨時(shí)數(shù)據(jù)的環(huán)境變量。
此外,我們剛剛在命令行中創(chuàng)建的變量,也可歸入到環(huán)境變量范疇,只不過這個(gè)變量是臨時(shí)的,退出命令行就會消失而已。
>set a a=12345 ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Laser\AppData\Roaming
到此這篇關(guān)于windows批處理中set命令的用法詳解的文章就介紹到這了,更多相關(guān)批處理set命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
批處理查看同一子網(wǎng)絡(luò)下的所有IP在線情況
本文給大家分享的是使用批處理命令實(shí)現(xiàn)查看局域網(wǎng)同一網(wǎng)段下的IP的使用情況,雖然想法和做法都很奇葩,但還是推薦給大家,有需要的小伙伴可以參考下2015-09-09