2015-06-22 66 views
1

我有一個.reg文件,它在系統屬性中插入一些信息。我想將計算機模型添加到此。 這是當前腳本的下面。如果可能,我想在這裏自動插入製造商和型號。將在批處理腳本中找到的信息插入到註冊表中

型號和製造商可以使用命令提示符下使用以下命令

wmic computersystem get model 
wmic computersystem get manufacturer 

我想知道我怎麼能自動將結果插入該.reg文件波紋管,這樣的腳本將工作中發現不同的型號等。

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的輸出需要更多的關心。

一個竅門是查詢一個額外的列,然後忽略它。然後你想要的列不受tricksy編碼的影響。在這種情況下,

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%" 
只是一個簡單的事情