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_USERHKEY_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