@echo off set T=c:\TEMP set DPARTSCRIPT=%T%\diskpart.txt rem create temp directory ... mkdir %T% 1>nul 2>nul echo ==================== echo Format Media ... echo ==================== echo. echo IMPORTANT HINT: 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. echo Showing disk list ... > %DPARTSCRIPT% ( @echo.list disk @echo.exit @echo. ) diskpart /s %DPARTSCRIPT% 2>nul set DISK= :askdisk set /p DISK="Please select a disk: " > %DPARTSCRIPT% ( @echo.select disk %DISK% @echo.exit @echo. ) diskpart /s %DPARTSCRIPT% 1>nul 2>nul if %ERRORLEVEL% EQU 0 ( echo OK using disk %DISK% GOTO CONT1 ) else ( echo ERROR: please select a valid disk number! ) goto askdisk :CONT1 set FS=fat32 :askfs echo. set /p FS="Please select filesystem (fat32 or exfat) [fat32]: " if /i "%FS%" EQU "fat32" ( echo IMPORTANT: maximum partition size for FAT32 is 32768! echo maximum filesize for FAT32 is 4GB! GOTO CONT2 ) if /i "%FS%" EQU "exfat" ( GOTO CONT2 ) if /i "%FS%" EQU "" ( GOTO CONT2 ) echo Please enter "exfat" or "fat32". goto askfs :CONT2 echo selected: %FS% set SIZE=32768 :asksize echo. set /p SIZE="Please enter size in MB [%SIZE%]: " if /i "%SIZE%" EQU "" ( GOTO CONT3 ) echo %SIZE%| findstr /r "^[1-9][0-9]*$">nul if %errorlevel% neq 0 ( echo Please enter an integer number! goto asksize ) else ( echo selected size = %SIZE% [MB] set SIZE=size=%SIZE% ) :CONT3 echo. set LABEL=W10-20H2 set /p LABEL="Please enter a label for the new disk [%LABEL%] : " echo WARNING ! This will DELETE ALL data on disk number [%DISK%] echo. set answer= :askyes set /p answer="REALLY delete disk %DISK% (Y/N)? " if /i "%answer:~,1%" EQU "Y" ( GOTO CONT3 ) if /i "%answer:~,1%" EQU "N" ( echo ABORT. del /F %DPARTSCRIPT% 1>nul 2>nul exit /b ) echo Please type Y or N. goto askyes :CONT3 rem ===== rem MAIN rem ===== > %DPARTSCRIPT% ( @echo.select disk %DISK% @echo.clean @echo.convert MBR @echo.create partition primary %SIZE% @echo.select partition 1 @echo.format fs="%FS%" LABEL="%LABEL%" quick @echo.active @echo.assign @echo.exit @echo. ) diskpart /s %DPARTSCRIPT% if %ERRORLEVEL% NEQ 0 ( echo ERROR: while formatting the disk! del /F %DPARTSCRIPT% 1>nul 2>nul exit /b ) echo Media formatted. rem cleanup ... del /F %DPARTSCRIPT% 1>nul 2>nul echo. echo ====== echo READY. echo ======