在使用者或系統環境中建立或修改環境變數,而不需要程式設計或腳本。 Setx 命令也會擷取登錄機碼的值,並將其寫入文字檔。
Note
此命令僅提供直接和永久設定系統環境值的命令行或程序設計方式。 系統環境變數可透過 控制台 或登錄編輯器手動設定。 set 指令位於指令解譯器 (Cmd.exe) 的內部,只會設定目前主控台視窗的使用者環境變數。
Syntax
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>]
Parameters
| Parameter | Description |
|---|---|
/秒 <computer> |
指定遠端電腦的名稱或IP位址。 請勿使用反斜杠。 預設值是本機計算機的名稱。 |
/u [<domain>\]<user name> |
使用指定用戶帳戶的認證來執行腳本。 預設值為系統許可權。 |
/p [<password>] |
指定 /u 參數中指定的使用者帳戶密碼。 |
<variable> |
指定您想要設定的環境變數名稱。 |
<value> |
指定要設定環境變數的值。 |
/k <path> |
指定根據登錄機碼的信息來設定變數。
路徑使用下列語法: \\<HIVE>\<KEY>\...\<Value>。 例如,您可以指定下列路徑:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName |
/f <filename> |
指定您想要使用的檔案。 |
/一個 <X>,<Y> |
指定絕對座標和位移做為搜尋參數。 |
/r <X>,<Y> <String> |
指定相對座標和字 串 的偏移作為搜尋參數。 |
| /m | 指定在系統環境中設定變數。 默認設定為本機環境。 |
| /x | 顯示檔案座標,忽略 /a、 /r 和 /d 命令列選項。 |
/d <delimiters> |
指定除四個內建分隔符號 (SPACE、TAB、ENTER 和 LINEFEED) 之外,還要使用的定界符號 (例如 ,或)。\ 有效的分隔符包含任何 ASCII 字元。 分隔符數目上限為 15,包括內建分隔符。 |
| /? | 在命令提示字元中顯示說明。 |
Remarks
此命令類似於 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%的引用,並且使用 setx 操作 %PATH%,則 %JAVADIR% 會展開,並將其值直接指派給目標變數 %PATH%。 這表示未來對 %JAVADIR% 的更新 將不會 反映在 %PATH% 變數中。
請注意,使用 setx 將內容指派給變數時,限制為 1024 個字元。
這表示如果您超過 1024 個字元,則會裁剪內容,而裁剪的文字會套用至目標變數。 如果這個裁剪的文字套用至現有的變數,可能會導致目標變數先前保留的數據遺失。
Examples
若要將本端環境中的 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
若要在本機環境中設定 MYPATH 環境變數,以使用名為 computer1 的遠端電腦上 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 檔案中 Gateway 座標的座標 0,7 處找到的值,請鍵入:
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