setx
在使用者或系統環境中建立或修改環境變數,而不需要程式設計或指令碼。 Setx 命令也會擷取登錄機碼的值,並將其寫入文字檔。
注意
此命令僅提供直接和永久設定系統環境值的命令列或程序設計方式。 系統環境變數可透過 [控制台]或登錄編輯器手動設定。 set 命令,這是命令解譯器 (Cmd.exe),只會設定目前主控台視窗的使用者環境變數。
語法
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable> <value> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable>] /k <path> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] /f <filename> {[<variable>] {/a <X>,<Y> | /r <X>,<Y> <String>} [/m] | /x} [/d <delimiters>]
參數
參數 | 描述 |
---|---|
/s <computer> |
指定遠端電腦的名稱或 IP 位址。 請勿使用反斜線。 預設值是本機電腦的名字。 |
/u [<domain>\]<user name> |
使用指定的使用者帳戶認證來執行指令碼。 預設值為系統權限。 |
/p [<password> ] |
指定 /u 參數中指定的使用者帳戶密碼。 |
<variable> |
指定想要設定的環境變數名稱。 |
<value> |
指定要設定環境變數的值。 |
/k <path> |
指定根據登錄機碼的資訊來設定變數。 path 會使用下列語法:\\<HIVE>\<KEY>\...\<Value> 。 例如,您可以指定下列路徑:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName |
/f <filename> |
指定要使用的檔案。 |
/a <X>,<Y> |
指定絕對座標和位移做為搜尋參數。 |
/r <X>,<Y> <String> |
將 String 的相對座標和位移指定為搜尋參數。 |
/m | 指定在系統環境中設定變數。 預設設定為本機環境。 |
/x | 顯示檔案座標,忽略 /a、/r 和 /d 命令列選項。 |
/d <delimiters> |
指定除了四個內建分隔符號 (SPACE、TAB、ENTER 和 LINEFEED) 之外使用的分隔符號,例如:、 或 \ 有效的分隔符號包含任何 ASCII 字元。 分隔符號數目上限為 15,包括內建分隔符號。 |
/? | 在命令提示字元顯示說明。 |
備註
此命令類似於 UNIX 公用程式 SETENV。
您可以使用此命令,從三個來源 (模式) 之一設定使用者和系統環境變數的值:命令列模式、登錄模式或檔案模式。
此命令會將變數寫入登錄中的主要環境。 以 setx 變數設定的變數只能在未來的命令視窗中使用,而不是在目前的命令視窗中使用。
HKEY_CURRENT_USER 和 HKEY_LOCAL_MACHINE 是唯一支援的登錄區。 REG_DWORD、REG_EXPAND_SZ、REG_SZ 和 REG_MULTI_SZ 是有效的 RegKey 資料類型。
如果您取得登錄中 REG_MULTI_SZ 值的存取權,則只會擷取並使用第一個項目。
您無法使用此命令來移除新增至本機或系統環境的值。 您可以使用此命令搭配變數名稱,且沒有值可從本機環境移除對應的值。
會擷取 REG_DWORD 登錄值並用於十六進位模式。
檔案模式僅支援剖析歸位字元和換行字元 (CRLF) 文字檔。
在現有的變數上執行此命令會移除任何變數參考,並使用展開的值。
例如,如果變數 %PATH% 具有 %JAVADIR% 的參考,且 %PATH% 是使用 setx 操作,則會展開 %JAVADIR%,並將其值直接指派給目標變數 %PATH%。 這表示 %JAVADIR% 的未來更新不會反映在 %PATH% 變數中。
請注意,使用 setx 將內容指派給變數時,限制為 1024 個字元。
這表示如果您超過 1024 個字元,則會裁剪內容,而裁剪的文字會套用至目標變數。 如果這個裁剪的文字套用至現有的變數,可能會導致目標變數先前保留的資料遺失。
範例
若要將本機環境中的 MACHINE 環境變數設定為值 Brand1,請輸入:
setx MACHINE Brand1
若要將系統環境中的 MACHINE 環境變數設定為值 Brand1 Computer,請輸入:
setx MACHINE Brand1 Computer /m
若要在本機環境中設定 MYPATH 環境變數,以使用 PATH 環境變數中定義的搜尋路徑,請輸入:
setx MYPATH %PATH%
若要在本機環境中設定 MYPATH 環境變數,以使用 PATH 環境變數中定義的搜尋路徑,請先用 ~取代為 %,請輸入:
setx MYPATH ~PATH~
若要在名為 computer1 的遠端電腦上,將本機電腦的 MACHINE 環境變數設定為 Brand1,請輸入:
setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE Brand1
若要在名為 computer1 的遠端電腦上,設定本機環境的 MYPATH 環境變數,以使用 PATH 環境變數中定義的搜尋路徑,請輸入:
setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%
若要將本機環境中的 TZONE 環境變數設定為 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName 登錄機碼中找到的值,請輸入:
setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
若要在名為 computer1 遠端電腦上,將本機環境中的 TZONE 環境變數設定為 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName 登錄機碼中找到的值,請輸入:
setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
若要將系統環境中的 BUILD 環境變數設定為 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber 登錄機碼中找到的值,請輸入:
setx BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber /m
若要將名為 Computer1 的遠端電腦系統環境中的 BUILD 環境變數,設定為 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber 登錄機碼中找到的值,請輸入:
setx /s computer1 /u maindom\hiropln /p p@ssW23 BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber /m
若要顯示名為 Ipconfig.out 的檔案內容,以及內容的對應座標,請輸入:
setx /f ipconfig.out /x
若要將本機電腦的 IPADDR 環境變數設定為 Ipconfig.out 檔案中座標 [5,11] 找到的值,請輸入:
setx IPADDR /f ipconfig.out /a 5,11
若要將本機電腦的 OCTET1 環境變數設定為 Ipconfig.out 檔案中座標 [5,3] 找到的值,搭配分隔符號 #$*.,請輸入:
setx OCTET1 /f ipconfig.out /a 5,3 /d #$*.
若要將本機電腦的 IPGATEWAY 環境變數設定為 Ipconfig.out 檔案中座標 [0,7] 與 Gateway 座標相關聯的值,請輸入:
setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway
若要在名為 computer1 的電腦上,顯示 Ipconfig.out 檔案的內容,搭配內容的對應座標,請輸入:
setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x