顯示、設置或刪除環(huán)境變量。如果沒有任何參數(shù),set 命令將顯示當前環(huán)境設置。
set 命令具有不同的參數(shù),可從“故障恢復控制臺”中獲得。
字符 < > | & ^ 是特殊命令外殼字符,在 String 中使用時必須在其前面使用轉義符 (^) 或用引號引起來(即,"StringContaining&Symbol")。如果要使用引號將含有特殊字符的字符串引起來,則該引號將被設置成環(huán)境變量值的一部分。
使用環(huán)境變量可控制某些批處理文件和程序的行為,并可控制
當只鍵入 set 命令時,將顯示當前的環(huán)境設置。這些設置通常包含用來幫助查找磁盤上程序的 COMSPEC 和 PATH 環(huán)境變量。
當指定變量和字符串的值時,指定的變量值將被添加到該環(huán)境,而且該字符串與該變量關聯(lián)。如果環(huán)境中已經存在該變量,新的字符串值將替代舊的字符串值。
如果只為 set 命令指定一個變量和一個等號(沒有字符串),則與該變量關聯(lián)的字符串值將被清除(就像變量根本不存在一樣)。
下表按優(yōu)先性從高到低的順序列出了支持 /a 的運算符。
運算符 | 執(zhí)行的操作 |
---|---|
< > | 分組 |
* / % + - | 算法 |
<< >> | 邏輯移位 |
& | 按位“和”運算 |
^ | 按位“異或”運算 |
| | 按位“或”運算 |
分配 | |
, | 表達式分隔符 |
如果使用邏輯 (&& ||) 或模塊 (%) 運算符,請使用引號將表達式字符串引起來。表達式中的非數(shù)字字符串將被視為環(huán)境變量名,其值將轉化成數(shù)字然后才進行處理。如果指定當前環(huán)境中沒有定義的環(huán)境變量名,將會分配零值,允許您對環(huán)境變量進行算術運算,而不需要使用 % 找回值。
如果從命令腳本外的命令行中運行 set /a,則會顯示該表達式的最終值。
數(shù)值是指十進制的數(shù)字,前綴加 0× 則表示十六進制數(shù)字,加 0 則表示八進制數(shù)字。因此,0×12 與 18 相同,也與 022 相同。八進制表示法容易引起混淆。例如,08 和 09 不是有效數(shù)字,因為 8 和 9 不是有效的八進制數(shù)字。
要求有提示字符串。
已經添加延遲的環(huán)境變量擴展支持。默認情況下禁用該支持,不過可使用 cmd /v 啟用或禁用它。
當啟用命令擴展(默認)并單獨運行 set 時,將顯示所有當前的環(huán)境變量。如果使用一個值來運行 set,則會顯示與該值匹配的變量。
創(chuàng)建批處理文件時,可以使用 set 命令創(chuàng)建變量,然后像使用編號變量 %0 到 %9 一樣使用這些變量。也可以使用 %0 到 %9 變量作為 set 命令的輸入。
從批處理文件調用變量值時,必須將該值用百分號 (%) 括起來。例如,如果批處理程序創(chuàng)建了一個環(huán)境變量 BAUD,則可以在命令行中鍵入 %baud%,將與 BAUD 關聯(lián)的字符串作為可替換參數(shù)使用。
要設置名為 TEST^1 的環(huán)境變量,請鍵入:
set testVar=test^^1
要設置名為 TEST&1 的環(huán)境變量,請鍵入:
set testVar=test^&1
Set 將變量值設置成等號 (=) 后的內容。如果鍵入:
set testVar="test^1"
testVar="test^1"
要設置名為 INCLUDE 的環(huán)境變量,使字符串 C:\Inc(驅動器 C 上的 \Inc 目錄)與該變量關聯(lián),請鍵入:
set include=c:\inc
然后可以通過用名稱百分號 (%) 將 INCLUDE 括起,在批處理文件中使用字符串 C:\Inc。例如,可能在批處理文件中包含以下命令,以顯示與 INCLUDE 環(huán)境變量關聯(lián)的目錄內容。
dir %include%
處理此命令時,字符串 C:\Inc 將替代 %include%。
還可以在批處理程序中使用 set,將新目錄添加到 PATH 環(huán)境變量中。例如:
@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable.
set path=%1;%path%
set
當啟用命令表達式(默認)并使用一個值來運行 set 時,則會顯示與該值匹配的變量。例如,如果在命令提示符鍵入 set p,將得到如下結果:
Path=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0801
ProgramFiles=C:\Program Files
PROMPT=$P$G