2016-09-06 3 views
-1

Мне нужно извлечь определенные данные из раздела реестра и вывести эти данные в отдельные файлы, чтобы я мог вызвать другую внешнюю программу для выполнения функций на выходе. Я хочу сделать это для всех ключей реестра под HKLM \ System \ ControlSet001 \ Enum \ USBSTOR (Unknown Name) (серийный номер) я тогда нужно, чтобы извлечь дружественное имя значение .Извлечение определенных данных из раздела реестра, когда имя неизвестно (USBSTOR)

мне нужно сделать это один ключ в то время, а затем отправить серийный номер и дружественное имя отделить .txt файлы для каждого ключа поэтому окончательный вывод выглядит примерно так -

001E0BB89D74BF4160004514 & 0 Kingston DT4000 G2 USB Device (хранится в 1.txt)

50E549C6952EB1A00000002E & 0Next Kingston DataTraveler 2.0 USB Device (2.txt)

на момент я использую -

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

В этом списке перечислены все ключи, как -

HKEY_LOCAL_MACHINE \ System \ ControlSet001 \ Enum \ USBSTOR \ Disk & Ven_Kingston & Prod_DataTraveler_2.0 & Rev_1100 \ 50E549C6952EB1A00000002E FriendlyName REG_SZ Kingston 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 Kingston DT4000 G2 USB Device

Ive попробовал для/ф петли и исследованы в другом месте, но независимо от того, что я стараюсь, я не могу заставить его работать.

Любые предложения с благодарностью.

+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 
Смежные вопросы