2015-06-22 3 views
1

У меня есть .reg-файл, который вставляет некоторую информацию в свойства Системы. Я хотел бы добавить к этому модель компьютера. Это текущий скрипт ниже. Я хотел бы, если это возможно, вставить Производитель и номер модели здесь.Вставка информации, найденной в пакетном скрипте, в реестр

модель и производитель может быть найден с помощью командной строки с помощью следующих команд

wmic computersystem get model 
wmic computersystem get manufacturer 

я хотел бы знать, как я могу автоматически вставлять результаты в файл .reg ниже, так что скрипт будет работать различные модели ect.

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation] 
"Logo"="c:\\OEM\\OEMLOGO.BMP" 
"Manufacturer"="example" 
"Model"="example" 
"SupportHours"="8:30am - 5:00pm" 
"SupportPhone"="0458228893" 
"SupportURL"="www.web.com.au" 

ответ

0

В общем, если вы хотите, чтобы захватить и работать с выходом команды, используйте for /F петлю.

for /f "delims=" %%I in ('command') do set "var=%%~I" 

... или аналогичный. Однако запросы WMI немного сложны, поскольку результаты отображаются в нечетном кодировании (UCS-2 LE, если я правильно помню); поэтому для захвата вывода wmic требуется немного больше внимания.

Один трюк - запрос дополнительного столбца, а затем игнорируйте его. Тогда столбцы, на которые вы хотите, не подвержены влиянию кодировки. В этом случае

for /f "tokens=2-3 delims=," %%I in (
    'wmic computersystem get manufacturer^,model^,status /format:csv' 
) do (
    set "manufacturer=%%~I" 
    set "model=%%~J" 
) 

... должен получить нужные вам значения в переменных, которые вы можете использовать. Поскольку столбец 1 - это имя вашего компьютера, а столбец 4 - столбец «Статус», вы можете просто отказаться от них и в конечном итоге указать свои предполагаемые значения без влияния каких-либо особенностей начала и конца строки.

Оттуда, это всего лишь простой вопрос

set "branch=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" 
reg add "%branch%" /v Model /d "%model%" /f 
reg add "%branch%" /v Manufacturer /d "%manufacturer%" /f 

или

>>regfile.reg echo "Model"="%model%" 
>>regfile.reg echo "Manufacturer"="%manufacturer%"