:: To keep page layout, decorations and accents
:: always load and save this file with format
:: "OEM" alias "CP850" alias "DOS Latin 1"
:: with DOS line return
@echo off
cls
:: Needed for scripts run as admin to run in the script relative path
cd /d "%~dp0"
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
:: =====================================================================
:: --- SET VARIABLES
:: =====================================================================
:: some env variables relative to current user like %APPDATA% can NOT be used because
:: they don’t exist while setupcomplete is run.
:: save output to c:\custom Windows setup.log
set log="%SystemDrive%\custom Windows setup.log"
echo CHECK VALID VARIABLES DURING SETUP >> %log%
echo ================================== >> %log%
echo ALLUSERSPROFILE: %ALLUSERSPROFILE% >> %log%
echo CD: %CD% >> %log%
echo COMPUTERNAME: %COMPUTERNAME% >> %log%
echo OS: %OS% >> %log%
echo PROGRAMFILES: %PROGRAMFILES% >> %log%
echo SystemDrive: %SystemDrive% >> %log%
echo SystemRoot: %SystemRoot% >> %log%
echo TEMP: %TEMP% >> %log%
echo USERNAME: %USERNAME% >> %log%
echo WINDIR: %WINDIR% >> %log%
echo. >> %log%
echo Following variables should return nothing: >> %log%
echo USERDOMAIN: %USERDOMAIN% >> %log%
echo HOMEDRIVE: %HOMEDRIVE% >> %log%
echo APPDATA: %APPDATA% >> %log%
echo. >> %log%
echo ======================== >> %log%
echo START: SetupComplete.cmd >> %log%
echo ======================== >> %log%
:: ------------------------------
echo. >> %log%
echo Load this file with format "OEM" alias "CP850" alias "DOS Latin 1" >> %log%
echo. >> %log%
echo Working dir: %cd% >> %log%
echo. >> %log%
echo IMPORT REGISTRY FILES >> %log%
echo --------------------- >> %log%
REM SOME OS CUSTOMIZATIONS
CALL :RegImport "reghack\Custom HKLM.reg"
REM windows update and privacy policies
CALL :RegImport "reghack\My policies [Computer].reg"
echo. >> %log%
echo IMPORT HKCU (default user actually) >> %log%
echo ----------------------------------- >> %log%
echo. >> %log%
echo Load "C:\Users\Default\NTUSER.DAT" >> %log%
reg load "HKU\CurrentUsersDefault" "%SystemDrive%\Users\Default\NTUSER.DAT"
IF NOT !ErrorLevel!==0 (
echo █ FAILURE >> %log%
) else (
echo + SUCCESS >> %log%
REM SOME OS CUSTOMIZATIONS
CALL :RegImport "reghack\Custom HKCU.reg"
REM add japanese language in settings
CALL :RegImport "reghack\add jap.reg"
echo. >> %log%
echo Unload "C:\Users\Default\NTUSER.DAT" to save >> %log%
reg unload "HKU\CurrentUsersDefault"
IF NOT !ErrorLevel!==0 (
echo █ FAILURE >> %log%
) else (
echo + SUCCESS >> %log%
)
)
echo. >> %log%
echo =========================================== >> %log%
echo END: SetupComplete.cmd >> %log%
exit /b
:: ---------------------------------------------------------------------
:: -- FUNCTIONS SECTION START
:: ---------------------------------------------------------------------
:: FUNCTION TO IMPORT A REG FILE
:: CALL :RegImport "param1"
:: param1 @path: "relative or absolute path\backupFile.reg"
:: example => CALL :RegImport "%backupFolder%\%regFileName%"
:RegImport
echo.>> %log%
echo ╔════════════════════════════════════════════════════════════╗ >> %log%
echo Import : "%~1" >> %log%
echo ──────────────────────────────────────────────────────────── >> %log%
:: if the reg file to restore exists
if exist "%~1" (
REG import "%~1" > nul 2>&1
REM Success
if !errorlevel! == 0 (
echo + SUCCESS >> %log%
exit /b 0
) else (
REM display error message if restauration fails
echo █ ERROR DURING IMPORTATION REGISTRY FILE >> %log%
echo This command : REG import "%~1" >> %log%
echo returned an error. >> %log%
echo. >> %log%
echo Some keys may be protected although >> %log%
echo it’s been executed as admin. >> %log%
exit /b 1
)
) else (
REM display message if reg file doesn’t exist
echo.>> %log%
echo █ REGISTRY FILE NOT FOUND >> %log%
echo ─────────────────────── >> %log%
echo. >> %log%
echo This file : "%~1" >> %log%
echo doesn’t exist. >> %log%
echo. >> %log%
exit /b 1
)
exit /b