@echo off setlocal EnableDelayedExpansion set workdir=%~dp0 cd /d %workdir% :: expanding path with prerequisites for /d %%i in (bin\*) do set path=%cd%\%%i;!path! :: clearing temporary data if exist "tmp" ( echo. echo unmounting windows image... dism /unmount-image /mountdir:"tmp\wim" /discard echo. echo unmounting registry... reg unload HKLM\FWIN_TMP echo. echo removing tmp folder... rmdir "tmp" /s /q ) if "%1" == "" ( echo usage: create-iso.bat IMAGE goto exit ) :: console mode if "%1" == "console" ( echo. cmd goto exit ) mkdir tmp echo. echo extracting disc-image... mkdir tmp\disc-image 7z x -o"tmp\disc-image" %1 echo. echo mounting windows image... mkdir tmp\wim dism /mount-image /index:1 /imagefile:"tmp\disc-image\sources\install.wim" /mountdir:"tmp\wim" :: image console mode if "%2" == "console" ( echo. cmd goto exit ) echo. echo applying files to windows image... for /d %%i in (opus-files\wim\*) do ( echo applying: %%i xcopy "%%i" "tmp\wim" /e /y ) echo. echo working registry... cd "tmp\wim\windows\system32\config" for %%i in (*) do ( echo. echo mounting: %%i reg load HKLM\FWIN_TMP %%i echo running tweaks for %%i... for %%e in (%workdir%\opus-files\reg\%%i\*) do ( echo applying: %%e reg import "%%e" ) echo unmounting: %%i reg unload HKLM\FWIN_TMP ) cd /d %workdir% :: why would the default user settings not be in %windir%\system32\config? echo. echo mounting: tmp\wim\users\default\ntuser.dat reg load HKLM\FWIN_TMP "tmp\wim\Users\Default\NTUSER.DAT" echo running tweaks for NTUSER... for %%e in (%workdir%\opus-files\reg\NTUSER\*) do ( echo applying: %%e reg import "%%e" ) echo unmounting: tmp\wim\users\default\ntuser.dat reg unload HKLM\FWIN_TMP echo. echo applying scripts... for /d %%i in (opus-files\scripts\*) do ( echo applying: %%i call "%%i\script.bat" ) echo. echo committing changes to wim and unmounting... dism /unmount-image /mountdir:"tmp\wim" /commit echo. echo applying files to disc-image... for /d %%i in (opus-files\iso\*) do ( echo applying: %%i xcopy "%%i" "tmp\disc-image" /e /y ) echo. echo moving disc-image folder... rmdir "disc-image" /s /q move "tmp\disc-image" "%cd%" echo. echo deleting tmp... rmdir "tmp" /s /q echo. echo all done. a folder with the disc image's data has been created. use something like ntlite to compile it into an iso. pause explorer.exe "%cd%\disc-image" :exit