關鍵就在這個多字。
先看看單一Registry鍵的定製過程:
reg load HKU\TempHive C:\Users\Default\NTUSER.datreg import Sample.regreg unload HKU\TempHive
下面的指令碼可以處理用於Default使用者的多個reg檔案
REG load HKU\TempHive "C:\Users\Default\NTUSER.DAT" > nulfor /F "delims=*" %%i in ('dir /A /B *.reg') do REG import "%%i" >nulREG unload HKU\TempHive >nul
下面是處理多使用者的多個reg檔案
for /F "delims=*" %%i in ('dir /A /B %SystemDrive%\Users') do CALL :ModUserRegs "%%i" TempRegs > nulgoto End:ModUserRegs IF "%USERNAME%" == "%~1" ( Echo %1 is Current user. ) ELSE ( IF EXIST "%SystemDrive%\Users\%~1\NTUSER.DAT" ( REG load HKU\TempHive "%SystemDrive%\Users\%~1\NTUSER.DAT" > nul for /F "delims=*" %%i in ('dir /A /B ^"%~d0%~p0TempRegs\*.reg^"') do REG import "%~2\%%i" >nul REG unload HKU\TempHive >nul Echo %1 is done. ) ELSE ( Echo %1 isn't a user. ) )goto :eof
最後, 下面是完整的帶有日誌記錄功能的batch指令碼:
ECHO OFF:: ---------------------------------------------------------------------------------------:: Modify All and Default User Registry:: Version: 1.1:: Copyright Tony Liu, 2012:::: History::: Initial: May 22, 2012 Tony Liu:::: Description: It imports all defined registry into all system users NTUSER.DAT registry hive including Default User.:::: How TO::: Put exported registry files, .reg files, in TempRegs folder and change all the [HKEY_CURRENT_USER] root to [HKEY_USERS\TempHive] in .reg files.:: ---------------------------------------------------------------------------------------Echo ---------------------------------------------------------------------------- >> History.logEcho : Modify All and Default User Registry : >> History.logEcho : Start: %time%, %date% >> History.logEcho : Windows Version: >> History.logsysteminfo | find "OS Name" | find "Windows 7" >> History.logif %ERRORLEVEL% NEQ 0 goto EndIF Not Exist TempRegs ( Echo Error: .\TempRegs folder not exist. >> History.log goto End):: for /F "delims=," %%i IN (UserList.txt) do echo "%%i"for /F "delims=*" %%i in ('dir /A /B %SystemDrive%\Users') do CALL :ModUserRegs "%%i" TempRegs > nulgoto End:ModUserRegs IF "%USERNAME%" == "%~1" ( Echo %1 is Current user. >> History.log ) ELSE ( IF EXIST "%SystemDrive%\Users\%~1\NTUSER.DAT" ( REG load HKU\TempHive "%SystemDrive%\Users\%~1\NTUSER.DAT" > nul:: for /F "delims=*" %%i in ('dir /A /B ^"%~d0%~p0TempRegs\*.reg^"') do REG import "%~2\%%i" >nul REG unload HKU\TempHive >nul Echo %1 is done. >> History.log ) ELSE ( Echo %1 isn't a user. >> History.log ) )goto :eof:EndEcho : End: %time%, %date% >> History.logEcho ---------------------------------------------------------------------------- >> History.loggoto :eof