2016-09-06 35 views
-1

我需要從註冊表項中提取某些數據並將此數據輸出到單獨文件,以便我可以調用另一個外部程序在輸出上執行功能。我想下 HKLM \ SYSTEM \ ControlSet001 \枚舉\ USBSTOR(未知名稱)(序列號) 然後我需要它來提取友好名稱值要做到這一點對所有的註冊表項。當名稱未知時從註冊表鍵中提取特定數據(USBSTOR)

我需要它做一次這個鍵,然後發送序號友好名稱分離.txt文件的各個按鍵使得最終的輸出看起來像 -

001E0BB89D74BF4160004514 & 0金士頓DT4000 G2 USB設備(存儲在1.txt的)

50E549C6952EB1A00000002E & 0Next金士頓DataTraveler 2.0 USB設備(2.txt)

在目前我使用的 -

Reg query HKLM\System\ControlSet001\Enum\USBSTOR /s /v FriendlyName>>%~dp0Report.txt 

這將列出所有的按鍵爲 -

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \枚舉\ USBSTOR \磁盤& Ven_Kingston & Prod_DataTraveler_2.0 & Rev_1100 \ 50E549C6952EB1A00000002E 的FriendlyName REG_SZ金士頓DataTraveler 2.0 USB Device

HKEY_LOCAL_MACHINE \ System \ ControlSet001 \ Enum \ USBSTOR \ Disk & Ven_Kingston & Prod_DT 4000_G2 & Rev_PMAP \ 001E0BB89D74BF4160004514 的FriendlyName REG_SZ金士頓DT4000 G2 USB設備

香港專業教育學院嘗試了FOR/F環和其他地方的研究,但不管我怎麼努力我無法得到它的工作。

任何建議非常感謝。

+0

請出示您已經嘗試了什麼! [編輯](http://stackoverflow.com/posts/39358008/edit)你的問題,並在那裏發佈代碼! – aschipfl

回答

0

您還沒有提供有關應該在輸出上執行功能的外部程序的信息。您還沒有提供您嘗試過的for循環。 我會因此提供是一個示例腳本,它可以推動你在正確的方向,(這將寫入一個文件的旁邊吧)

@Echo Off 
SetLocal EnableExtensions DisableDelayedExpansion 
For /F "Delims==" %%A In ('Set USB[ 2^>Nul') Do Set "%%A=" 
Set "n=101" 
For /F "EOL=E Tokens=1,2*" %%A In (
    'Reg Query HKLM\System\ControlSet001\Enum\USBSTOR /S /V FriendlyName') Do (
    If "%%~nA" NEq "%%~A" (Call Set "USB[%%n:*1=%%]=%%~nA") Else (
     Call Call Set "USB[%%n:*1=%%]=%%%%USB[%%n:*1=%%]%%%% %%C" 
     Set/A n+=1)) 
If %n% NEq 101 (>"%~dp0AllUSBs.log" 2>Nul Set USB[) 
EndLocal 
Exit/B 
相關問題