193 lines
4.7 KiB
Batchfile
193 lines
4.7 KiB
Batchfile
@echo off
|
|
set T=c:\temp
|
|
set W10=c:\TEMP\W10
|
|
set SOURCES=%W10%\sources
|
|
set BOOTFILE=boot.wim
|
|
set IMAGEFILE=install.wim
|
|
set SCRIPT_SETTINGS=scripts\settings.cmd
|
|
set COMPANY_SETTINGS=company\settings.cmd
|
|
set LANG=en-US
|
|
set FOURGB=4294967296
|
|
set MYUSER=
|
|
set MYNAME=
|
|
set MYPASS=
|
|
|
|
IF %1.==. GOTO USAGE
|
|
|
|
rem ===================
|
|
rem CONFIGFILE CHECK
|
|
rem ===================
|
|
|
|
echo searching for SCRIPT settings ...
|
|
if NOT EXIST %SCRIPT_SETTINGS% (
|
|
echo INFO: config file %SCRIPT_SETTINGS% NOT FOUND
|
|
) else (
|
|
echo OK. Loading SCRIPT settings ...
|
|
call %SCRIPT_SETTINGS%
|
|
)
|
|
|
|
echo searching for COMPANY settings ...
|
|
if NOT EXIST %COMPANY_SETTINGS% (
|
|
echo INFO: config file %COMPANY_SETTINGS% NOT FOUND
|
|
) else (
|
|
echo OK. Loading COMPANY settings ...
|
|
call %COMPANY_SETTINGS%
|
|
)
|
|
|
|
echo.
|
|
echo =================================
|
|
echo Copying all data to USB Stick ...
|
|
echo =================================
|
|
echo.
|
|
|
|
set USBDRIVE=%1
|
|
|
|
if /I %USBDRIVE% == C: (
|
|
echo ERROR: cannot use drive %USBDRIVE% !
|
|
exit /b
|
|
)
|
|
|
|
if NOT EXIST %USBDRIVE% (
|
|
echo ERROR: drive %USBDRIVE% not found!
|
|
exit /b
|
|
)
|
|
|
|
echo using drive [ %USBDRIVE% ] ...
|
|
echo.
|
|
|
|
rem get drive type (is it fat32 ?) ...
|
|
for /f "tokens=5" %%A in ('@fsutil fsinfo volumeinfo %USBDRIVE%^|findstr /B "File System Name : "') do (@set DRIVETYPE=%%A)
|
|
echo INFO: DRIVETPYE = [ %DRIVETYPE% ]
|
|
|
|
rem =====
|
|
rem MAIN
|
|
rem =====
|
|
|
|
echo.
|
|
echo IMPORTANT:
|
|
echo How is your target media formatted?
|
|
echo - use "exfat" for BIOS based installations only!
|
|
echo - use "fat32" for UEFI based installations only!
|
|
echo REASON: UEFI cannot read "exfat" filesystems and Windows setup will throw error code: 0x80042565
|
|
echo.
|
|
|
|
rem check SOURCE for files LARGER 4 GB in case FAT32 was chosen ...
|
|
if /i "%DRIVETYPE%" EQU "fat32" (
|
|
for /f "tokens=*" %%F in ('"dir /S /B /A-D %W10%"') do if %%~zF GEQ %FOURGB% (
|
|
echo ERROR: The file [ %%F ] is greater than 4GB in size, cannot copy this to a FAT32 filesystem!
|
|
exit /b
|
|
)
|
|
)
|
|
|
|
set answer=B
|
|
:ask
|
|
set /p answer="BIOS(default) or UEFI setup (B/U)? "
|
|
if /i "%answer:~,1%" EQU "B" (
|
|
echo selected: BIOS
|
|
copy /Y image\autounattend_BIOS_template.xml %USBDRIVE%\autounattend.xml
|
|
GOTO CONT
|
|
)
|
|
if /i "%answer:~,1%" EQU "U" (
|
|
echo selected: UEFI
|
|
copy /Y image\autounattend_UEFI_template.xml %USBDRIVE%\autounattend.xml
|
|
GOTO CONT
|
|
)
|
|
echo Please type B for BIOS or U for UEFI setup.
|
|
goto ask
|
|
:CONT
|
|
|
|
rem ask for user ...
|
|
if "@%localadmin%" NEQ "@" (
|
|
set MYUSER=%localadmin%
|
|
) else (
|
|
echo.
|
|
set /p MYUSER="Username (%MYUSER%)? "
|
|
)
|
|
|
|
rem ask for real name ...
|
|
if "@%localadmin_name%" NEQ "@" (
|
|
set MYNAME=%localadmin_name%
|
|
) else (
|
|
echo.
|
|
set /p MYNAME="Display Name (%MYNAME%)? "
|
|
)
|
|
|
|
rem ask for a password ...
|
|
if "@%localadmin_password%" NEQ "@" (
|
|
set MYPASS=%localadmin_password%
|
|
) else (
|
|
echo.
|
|
set /p MYPASS="Password (not set)? "
|
|
)
|
|
|
|
echo.
|
|
tools\searchreplace %USBDRIVE%\autounattend.xml ___MYUSER___ "%MYUSER%"
|
|
tools\searchreplace %USBDRIVE%\autounattend.xml ___MYNAME___ "%MYNAME%"
|
|
tools\searchreplace %USBDRIVE%\autounattend.xml ___MYPASS___ "%MYPASS%"
|
|
tools\searchreplace %USBDRIVE%\autounattend.xml ___MYLANG___ "%LANG%"
|
|
|
|
if NOT EXIST %SOURCES%\%BOOTFILE% (
|
|
echo DOH! no %BOOTFILE% in [ %SOURCES% ] found
|
|
exit /b
|
|
)
|
|
|
|
if NOT EXIST %SOURCES%\%IMAGEFILE% (
|
|
if NOT EXIST %T%\%IMAGEFILE% (
|
|
echo DOH! no %IMAGE% in [ %SOURCES% ] or in [ %T% ] found
|
|
exit /b
|
|
)
|
|
)
|
|
|
|
if EXIST %T%\%IMAGEFILE% (
|
|
echo moving [ %T%\%IMAGEFILE% ] to %SOURCES% ...
|
|
move /Y %T%\%IMAGEFILE% %SOURCES%
|
|
)
|
|
|
|
echo copying all files in [ %W10% ] to drive %USBDRIVE% ...
|
|
robocopy %W10%\ %USBDRIVE% /MIR /256 /NDL /R:1 /J /XX
|
|
|
|
:CONT
|
|
if EXIST tools (
|
|
echo.
|
|
echo copying folder [ tools ] to drive %USBDRIVE% ...
|
|
robocopy tools %USBDRIVE%\tools /COPY:DT /FFT /XO /256 /NJH /NJS /NDL /R:1 /XF .gitignore
|
|
)
|
|
|
|
if EXIST software (
|
|
echo.
|
|
echo copying folder [ software ] to %USBDRIVE%\tools ...
|
|
robocopy software %USBDRIVE%\tools\software /COPY:DT /FFT /XO /MIR /256 /NJH /NJS /NDL /R:1 ^
|
|
/XF *.iso /XF *.txt /XF *.cmd /XF *.csv /XF .gitignore /XD .git
|
|
)
|
|
|
|
for %%P in (drivers scripts source optional personal company apps) do (
|
|
if EXIST %%P (
|
|
echo.
|
|
echo copying folder [ %%P ] to %USBDRIVE%\tools ...
|
|
robocopy %%P %USBDRIVE%\tools\%%P /COPY:DT /FFT /XO /MIR /256 /NJH /NJS /NDL ^
|
|
/R:1 /XF .gitignore /XD .git
|
|
)
|
|
)
|
|
|
|
echo.
|
|
echo copying custom setup script to %USBDRIVE% ...
|
|
copy /Y image\CustomSetup.cmd %USBDRIVE%\
|
|
|
|
echo.
|
|
echo putting tools-copy script to %USBDRIVE% ...
|
|
copy /Y image\CopyTools.cmd %USBDRIVE%\
|
|
|
|
echo.
|
|
echo ======
|
|
echo READY.
|
|
echo ======
|
|
|
|
GOTO END
|
|
|
|
:USAGE
|
|
echo "usage: %0 <USBDRIVE>"
|
|
echo.
|
|
|
|
:END
|
|
|