Цитата mitiya:
как бы скопировать ключи реестра »
|
типа такого?.. тоже хватает минусов:
- сохраняются ключи целиком, а не отдельные параметры;
- в REG-файлах нужно еще как-то заменить "HKEY_USERS\TEMP" на "HKEY_CURRENT_USER"
Код:
![Выделить весь код](images/misc/selectcode.png)
@Echo Off
Set $Home=%~dp0
Set $Root=.
Set FileIncl=%$Home%FileIncl.txt
Set UserExcl=%$Home%UserExcl.txt
Set HKCUIncl=%$Home%HKCUIncl.txt
PushD %$Root%
If Exist users RD /S /Q users
MD Users
CD Users
For /F "Tokens=1,2" %%i In ('WMIC UserAccount Where LocalAccount^=True Get Name^,SID^,Status^|FindStr /IERC:"OK *"') Do Call :CopyUserProfile %%i %%j
PopD
Exit
:CopyUserProfile
:: Сверка имени пользователя со списком исключения
FindStr /IXC:"%1" %UserExcl%
If Not ErrorLevel 1 GoTo :EOF
CHCP 1251 >Nul
:: Получение пути к профилю пользователя
For /F "Tokens=1,2*" %%i In ('2^>Nul REG Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%2"^|FindStr /BIRC:" *ProfileImagePath"') Do Call Set $UserProfile=%%k
If "%$UserProfile%"=="" GoTo :EOF
:: Копирование файлов/каталогов по списку
For /F "UseBackQ Tokens=* Delims=" %%A In ("%FileIncl%") Do If Exist "%$UserProfile%\%%A" XCopy /E/H/Q "%$UserProfile%\%%A" "%1\Files\%%A\"
:: Копирование веток реестра по списку
REG Load HKU\TEMP "%$UserProfile%\NTUSER.DAT" >Nul
If ErrorLevel 1 GoTo :EOF
For /F "UseBackQ Delims=" %%i In ("%HKCUIncl%") Do (
@Echo F|XCopy /Q/R/V "%~dpnx0" "%1\Regis\%%i.reg" >Nul
If Exist "%1\Regis\%%i.reg" DEL /Q/F "%1\Regis\%%i.reg"
REG Export "HKU\TEMP\%%i" "%1\Regis\%%i.reg" /Y
)
REG Unload HKU\TEMP >Nul
CHCP 866 >Nul
GoTo :EOF