Касаемо Presetup.cmd
Предлагаю вам конструкцию presetup для возможности выбора устанавливаемых компонентов. Я сделал его для возможности выбора "весомых" программ на этапе RunOneEx. Вы можете прикрутить еще и к Т-13.
Сделал это для интерактивного выбора установки программ для разных компьютеров (слабых, старых, новых...) и для потребности каждого пользователя в отдельности (себя - для быстрой установки на виртуальную машину).
Если кто-то скажет, что для этого есть WPI и BS PostInstall - отвечу вам что использовать их не хочу и не желаю наворачивать дополнительными программами диск.
Вот сама конструкция
читать дальше »
Код:

:: ================================== Конструкция для интерактивного выбора программ ==================================
:: ======================================================= НИЖЕ =======================================================
:DotNET
if exist %SrcDosPath%\I386\SVCPACK\DNet1140.exe (
MSGBOX.EXE "•®вЁвҐ гбв**®ўЁвм .NET Framework 2.0...4.0 ЇаЁ ЇҐаў®¬ ўе®¤Ґ ў бЁб⥬г? “бв**®ўЄ* ¬®¦Ґв §**пвм ¤«ЁвҐ«м*®Ґ ўаҐ¬п!" "MSGBOX" 3 3 10 && cmdow.exe MSGBOX /top
if "%errorlevel%"=="7" (
expand -r %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
find /V "DNet1140.exe -ai2P -gm2" %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf >> %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new
move /y %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
makecab %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
)
)
:Office
if exist %SrcDosPath%\I386\SVCPACK\office2007.exe (
MSGBOX.EXE "•®вЁвҐ гбв**®ўЁвм Office 2007 ЇаЁ ЇҐаў®¬ ўе®¤Ґ ў бЁб⥬г? “бв**®ўЄ* ¬®¦Ґв §**пвм ¤«ЁвҐ«м*®Ґ ўаҐ¬п!" "MSGBOX" 3 3 10 && cmdow.exe MSGBOX /top
if "%errorlevel%"=="7" (
expand -r %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
find /V "office2007.exe -ai -gm2" %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf >> %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new
move /y %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
makecab %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
)
)
:Winstyle
if exist %SrcDosPath%\I386\SVCPACK\Winstyle.exe (
MSGBOX.EXE "•®вЁвҐ §*ЇгбвЁвм Ё§¬Ґ*Ґ*ЁҐ Ё*вҐа䥩б* Windows ЇаЁ ЇҐаў®¬ ўе®¤Ґ ў бЁб⥬г? “бв**®ўЄ* ¬®¦Ґв §**пвм ¤«ЁвҐ«м*®Ґ ўаҐ¬п!" "MSGBOX" 3 3 10 && cmdow.exe MSGBOX /top
if "%errorlevel%"=="7" (
expand -r %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
find /V "Winstyle.exe -ai -gm2" %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf >> %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new
move /y %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
makecab %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
)
)
:xReset
if exist %SrcDosPath%\I386\SVCPACK\xReset10.exe (
expand -r %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
find "DNet1140.exe -ai2P -gm2" %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
if %ERRORLEVEL%==0 (
makecab %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
goto Drivers
)
find "office2007.exe -ai -gm2" %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
if %ERRORLEVEL%==0 (
makecab %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
goto Drivers
)
find "Winstyle.exe -ai -gm2" %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
if %ERRORLEVEL%==0 (
makecab %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
goto Drivers
)
find /V "xReset10.exe -aiK -! 120 zzzzzzReset" %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf >> %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new
move /y %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf.new %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
makecab %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf %systemdrive%\$WIN_NT$.~LS\I386\svcpack.in_
del %systemdrive%\$WIN_NT$.~LS\I386\svcpack.inf
)
)
:: ======================================================= ВЫШЕ =======================================================
:: ================================== Конструкция для интерактивного выбора программ ==================================
П.С.
Может быть как-то можно оптимизировать код, но я не знаю как, т.к. писал для своего уровня познания %)