2015-04-04 76 views
1

我一直在嘗試使用reg add命令向註冊表添加「REG_MULT_SZ」條目。REG添加帶有轉義「」字符的「REG_MULTI_SZ」分隔符

例1:

REG ADD "HKLM\SOFTWARE\TESTKEY" /v "TESTVALUE" /t "REG_MULTI_SZ"^
    /d "TEST_ENTRY1\0TEST_ENTRY2\0TEST_ENTRY3" /f /reg:64 

例2:

REG ADD "HKLM\SOFTWARE\TESTKEY" /v "TESTVALUE" /t "REG_MULTI_SZ" /s "\0"^
    /d "TEST_ENTRY1\0TEST_ENTRY2\0TEST_ENTRY3" /f /reg:64 

示例1個命令工作,因爲該命令的默認分隔確實"\0",但如果我嘗試使用/s命令(例如2 )來設置分隔符,即使它等於默認分隔符也不起作用。

我試圖逃避"\"字符使用... /s "\\\0" ...沒有成功。

是否有人知道如何將"\"字符傳遞給REG ADD "REG_MULTI_SZ"命令/s

最好的問候,

埃俄利斯

回答

1
reg add /? 

/s  Specify one character that you use as the separator in your data 
     string for REG_MULTI_SZ. If omitted, use "\0" as the separator. 

指定一個字符(如)如下:

REG ADD "HKLM\SOFTWARE\TESTKEY" /v "TESTVALUE" /t "REG_MULTI_SZ" /s €^
    /d "TEST_ENTRY1€TEST_ENTRY2€TEST_ENTRY3" /f /reg:64 

^和僅用於更好的可讀性新的生產線,適用單線式

REG ADD "HKLM\SOFTWARE\TESTKEY" /v "TESTVALUE" /t "REG_MULTI_SZ" /s € /d "TEST_ENTRY1€TEST_ENTRY2€TEST_ENTRY3" /f /reg:64 

重演:如果使用的話reg add ... /t REG_MULTI_SZ

  • 與默認分離器(/s開關中省略),則:
    • \0是用來分離數據的多個實例;
    • 0(零)在\(反斜槓)數據的字面上採取前所未有的。
  • /s Ж分離器(其中Ж是一個唯一的字符,保持即使定義/s 0)然後:
    • Ж是用來分離數據的多個實例;
    • 沒有機會逃避這個分隔符的命運並在字面上使用Ж字符在數據中。

:僅基於實驗:我不能逃脫記錄我的解釋。例如:想象你應該創建一個REG_MULTI_SZ註冊表值與未來的場景與_numbered文件夾:

test\01gen 
test\02gen 
test\03gen 

然後你需要覆蓋默認的分隔符。覆蓋reg query默認的分隔以及與/se開關(否則,輸出可能會變得有點混亂):

d:\bat>set "_regKey=HKCU\Software\Test Key" 

d:\bat>set "_regData=test\01gen€test\02gen€test\03gen" 

d:\bat>REG ADD "%_regKey%" /v TESTVALUE /t REG_MULTI_SZ /s € /d "%_regData%" /f /reg:64 
The operation completed successfully. 

d:\bat>REG QUERY "%_regKey%" /v TESTVALUE 

HKEY_CURRENT_USER\Software\Test Key 
    TESTVALUE REG_MULTI_SZ test\01gen\0test\02gen\0test\03gen 


d:\bat>REG QUERY "%_regKey%" /v TESTVALUE /se @ 

HKEY_CURRENT_USER\Software\Test Key 
    TESTVALUE REG_MULTI_SZ test\[email protected]\[email protected]\03gen 


d:\bat> 

尾聲:一個棘手的路徑來回答 - 見編輯歷史(TL;博士)。

+0

非常感謝Josef先生!我必須用一個字來分隔答案。但是,如果我不使用'/ s'命令使用自定義分隔符,則reg函數默認爲'\ 0',這是一個組合分隔符。它是如何完成的?這是一個reg函數內部操作,不能被用戶複製?如果用戶選擇使用'\ n'作爲分隔符,它可以完成? – Aeolis 2015-04-04 22:03:05