124 lines
2.3 KiB
Batchfile
124 lines
2.3 KiB
Batchfile
@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 |