@echo off
rem --------- Optional: An die eigenen Verhaeltnisse anpassen -----------

rem Pfad zum Arbeitsverzeichnis setzen, beispielsweise workdir=d:\wb\
rem Ohne Anpassung verwendet das Skript den Ordner, in dem es liegt
rem Keine Leerzeichen im Pfad!
set workdir=%~d0%~p0

rem Mount-Ordner setzen, beispielsweise d:\wb\mount
rem Ohne Anpassung erstellt das Skript ihn in dem Ordner, in dem es liegt
rem Ordner darf nicht vorhanden sein!
rem Keine Leerzeichen im Pfad!
set mountdir=%workdir%mount

rem Name der WIM-Datei setzen, normalerweise install.wim
set imagefile=install.wim

rem Image aus der WIM-Datei auswaehlen. 
rem normalerweise Pro/Enterprise/selbstgebautesWIM=1, Core=2
set index=1

rem ------------- Ende der Anpassungen -----------

rem Vorabpruefungen
if exist %mountdir% goto Fehler1
if not exist %workdir%%imagefile% set fehlt=%imagefile%&&goto Fehler2

rem Vorsichtshalber aufraeumen
dism /cleanup-mountpoints
dism /cleanup-wim

set operation=*** Image bereitstellen ***
echo.
echo %operation%
echo.
md %mountdir%
if errorlevel 1 goto fehler4
dism /mount-image /imagefile:%workdir%%imagefile% /index:%index% /mountdir:%mountdir%
if errorlevel 1 goto fehler4

set operation=*** Wenn vorhanden: Winre.wim ausbauen ***
echo.
echo %operation%
echo.
if NOT exist %mountdir%\windows\system32\recovery\winre.wim goto weiter
attrib -s -h %mountdir%\windows\system32\recovery\winre.wim
if errorlevel 1 goto fehler4
move %mountdir%\windows\system32\recovery\winre.wim %workdir%winre.wim
if errorlevel 1 goto fehler4
:weiter

set operation=*** Wimboot-tauglich machen ***
echo.
echo %operation%
echo.
dism /optimize-image /image:%mountdir% /wimboot
if errorlevel 1 goto fehler4

set operation=*** Bereitstellung aufheben ***
echo.
echo %operation%
echo.
dism /unmount-image /mountdir:%mountdir% /commit
if errorlevel 1 goto fehler4
rmdir %mountdir% /q
if errorlevel 1 goto fehler4

set operation=*** Andere Images entfernen ***
echo.
echo %operation%
echo.
dism /export-image /wimboot /sourceimagefile:%workdir%%imagefile% /sourceindex:%index% /destinationimagefile:%workdir%temp.wim
if errorlevel 1 goto fehler4
del %workdir%%imagefile% /q
if errorlevel 1 goto fehler4
ren %workdir%temp.wim %imagefile%
if errorlevel 1 goto fehler4

rem Fertig
echo.
echo Fertig.
pause
goto :eof

rem Falls Mount-Ordner bereits vorhanden
:fehler1
echo Fehler: Mount-Ordner existiert bereits
pause
goto :eof

rem Falls Dateien fehlen
:fehler2
echo Fehler: Im Arbeitsverzeichnis fehlt die Datei %fehlt%
pause
goto :eof

rem Fehler durch externes Programm
:fehler4
echo Operation fehlgeschlagen: %operation%
pause
goto :eof