Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cls
- @echo off
- setlocal enableextensions enabledelayedexpansion
- CHCP 852 >nul
- %~d0
- cd %~p0
- if /i [%1]==[] (echo nie podano argumentu.) & goto :not_ok
- if /i [%2]==[] (set index=1) else (set index=%2)
- for /f "tokens=2 delims= " %%G in ('call dism /get-wiminfo /wimfile:%1 /index:%index% ^| find /i "error:"') do (set EL=%%G)
- if /i not [%EL%]==[] echo Plik nie zawiera obrazu o indeksie %index% & goto :not_ok
- set /P efi=Czy zainstalowa† system w trybie UEFI (T czy N)?:
- set /P reco=Konfiguracja dysku i partycji recovery (A=15GB, B=1GB, Z=Custom, P=Pomiä, N)?:
- if /i not [%reco%]==[A] if /i not [%reco%]==[B] if /i not [%reco%]==[Z] if /i not [%reco%]==[P] set reco=C
- if /i [%efi%]==[T] set FW=efi
- if /i [%efi%]==[Y] set FW=efi
- if /i [%reco%]==[P] goto :do_select
- echo.
- set /a count=0
- set disknr=
- for /f "tokens=2" %%A in ('^(echo lis dis^) ^| diskpart ^| find /i "online"') do (call :dsk1 "%%A")
- if [%count%]==[1] (set disknr=0 & goto :disknr)
- if [%count%]==[0] (echo Nie wykryto dysk˘w umoľliwiajĄcych instalacj©. & goto :not_ok)
- echo.
- if [%count%] GTR [1] echo Wykryto kilka dysk˘w umoľliwiajĄcych instalacj©:
- echo.
- set /P disknr=Na kt˘rym instalowa†?:
- echo.
- if /i [%disknr%] == [] (echo Nie wybrano dysku.) & goto :not_ok
- for /f %%A in ('^(echo %okdisks%^) ^| find /c /i "%disknr%"') do (if /i [%%A]==[0] (echo Nieprawidowy dysk.) & goto :not_ok)
- for /f "skip=10 delims=" %%A in ('^(echo sel dis %disknr% ^& echo det dis^) ^| diskpart') do (set /P select_disk="Wybrano: Dysk %disknr% > %%A - czy potwierdzasz (T czy N)?:" & goto :dsk3)
- goto :not_ok
- :dsk1
- for /f "delims=" %%A in ('^(echo sel dis %1 ^& echo det dis^) ^| diskpart ^| find /c /i ": usb"') do (if /i [%%A] EQU [0] (set /a count+=1 & call :dsk2 %1))
- goto :not_ok
- :dsk2
- for /f "tokens=1,2,4,5" %%A in ('^(echo lis dis^) ^| diskpart ^| find /i "disk %~1"') do (set dnr="%%A %%B - %%C %%D")
- for /f "skip=10 delims=" %%A in ('^(echo sel dis %1 ^& echo det dis^) ^| diskpart') DO (echo %dnr:"=% - %%A & set okdisks=%okdisks%+%~1+ & goto :not_ok)
- goto :not_ok
- :dsk3
- if /i [%select_disk%]==[T] set select_disk=true
- if /i [%select_disk%]==[Y] set select_disk=true
- if /i not [%select_disk%]==[true] (echo Nie potwierdzono. Wychodz©.) & goto :not_ok
- goto :disknr
- :do_select
- echo.
- echo Wybrano r©cznĄ konfiguracj©.
- echo Potwierd« kt˘re woluminy chcesz oznaczy† jako S i W (podaj nr. z listy):
- echo.
- (echo lis vol) | diskpart
- (echo exit) | diskpart >nul
- echo.
- set /P s=Podaj numer woluminu S:
- if /i not [%s%] NEQ [] (echo Nie ustawiono poprawnych parametr˘w) & goto :not_ok
- for /f %%A in ('^(echo lis vol^) ^| diskpart ^| find /c /i "Volume %s%"') do (if /i [%%A]==[0] (echo Nie ma takiego woluminu) & goto :not_ok)
- for /f "tokens=1,2" %%A in ('^(echo lis vol^) ^| diskpart ^| find /i "Volume %s%"') do (set /P select_s="Wybrano wolumin %%B - czy potwierdzasz (T czy N)?:")
- if /i [%select_s%]==[T] set select_s=true
- if /i [%select_s%]==[Y] set select_s=true
- if /i not [%select_s%]==[true] (echo Nie potwierdzono. Wychodz©.) & goto :not_ok
- set /P w=Podaj numer woluminu W:
- if /i not [%w%] NEQ [] (echo Nie ustawiono poprawnych parametr˘w) & goto :not_ok
- for /f %%A in ('^(echo lis vol^) ^| diskpart ^| find /c /i "Volume %w%"') do (if /i [%%A]==[0] (echo Nie ma takiego woluminu) & goto :not_ok)
- for /f "tokens=1,2" %%A in ('^(echo lis vol^) ^| diskpart ^| find /i "Volume %w%"') do (set /P select_w="Wybrano wolumin %%B - czy potwierdzasz (T czy N)?:")
- if /i [%select_w%]==[T] set select_w=true
- if /i [%select_w%]==[Y] set select_w=true
- if /i not [%select_w%]==[true] (echo Nie potwierdzono. Wychodz©.) & goto :not_ok
- set /P select_format=Czy formatowa† wolumin W (T czy N)?:
- if /i [%select_format%]==[T] (echo sel vol %w% & echo for quick fs=ntfs label=Windows) | diskpart >nul
- if /i [%select_format%]==[Y] (echo sel vol %w% & echo for quick fs=ntfs label=Windows) | diskpart >nul
- (echo sel vol %s% & echo ass letter=S & echo sel vol %w% & echo ass letter=W) | diskpart >nul
- (echo exit) | diskpart >nul
- goto :do_dism
- :disknr
- (echo exit) | diskpart >nul
- echo.
- if /i not [%FW%]==[efi] goto :do_bios_disk
- if /i [%FW%]==[efi] goto :do_efi_disk
- :do_bios_disk
- echo Prosz© czeka† - trwa konfigurowanie dysku.
- if /i not [%reco%]==[Z] (echo sel dis %disknr% & echo cle & echo conv mbr & echo cre par pri size=512 & echo for quick fs=ntfs label=Boot & echo ass letter=S: & echo act & echo set id=27) | diskpart >nul
- if /i [%reco%]==[Z] diskpart /s n:\custom.txt >nul
- if /i [%reco%]==[C] (echo sel dis %disknr% & echo cre par pri & echo for quick fs=ntfs label=Windows & echo ass letter=W:) | diskpart >nul
- if /i [%reco%]==[B] (echo sel dis %disknr% & echo cre par pri & echo shrink minimum=1024 & echo for quick fs=ntfs label=Windows & echo ass letter=W:) | diskpart >nul
- if /i [%reco%]==[A] (echo sel dis %disknr% & echo cre par pri & echo shrink minimum=15360 & echo for quick fs=ntfs label=Windows & echo ass letter=W:) | diskpart >nul
- if /i not [%reco%]==[C] if /i not [%reco%]==[Z] (echo sel dis %disknr% & echo cre par pri & echo for quick fs=ntfs label=Recovery & echo ass letter=R: & echo set id=27) | diskpart >nul
- (echo lis vol) | diskpart
- (echo exit) | diskpart >nul
- goto :do_dism
- :do_efi_disk
- echo Prosz© czeka† - trwa konfigurowanie dysku.
- if /i not [%reco%]==[Z] (echo sel dis %disknr% & echo cle & echo conv gpt & echo cre par efi size=512 & echo for quick fs=fat32 label=Boot & echo ass letter=S: & echo set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b & echo gpt attributes=0x8000000000000001) | diskpart >nul
- if /i not [%reco%]==[Z] (echo sel dis %disknr% & echo cre par msr size=100) | diskpart >nul
- if /i [%reco%]==[Z] diskpart /s n:\custom.txt >nul
- if /i [%reco%]==[C] (echo sel dis %disknr% & echo cre par pri & echo for quick fs=ntfs label=Windows & echo ass letter=W:) | diskpart >nul
- if /i [%reco%]==[B] (echo sel dis %disknr% & echo cre par pri & echo shrink minimum=1024 & echo for quick fs=ntfs label=Windows & echo ass letter=W:) | diskpart >nul
- if /i [%reco%]==[A] (echo sel dis %disknr% & echo cre par pri & echo shrink minimum=15360 & echo for quick fs=ntfs label=Windows & echo ass letter=W:) | diskpart >nul
- if /i not [%reco%]==[C] if /i not [%reco%]==[Z] (echo sel dis %disknr% & echo cre par pri & echo for quick fs=ntfs label=Recovery & echo ass letter=R: & echo set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac & echo gpt attributes=0x8000000000000001) | diskpart >nul
- (echo lis vol) | diskpart
- (echo exit) | diskpart >nul
- goto :do_dism
- :do_dism
- echo.
- echo.
- for /f "tokens=3,* delims= " %%G in ('call dism /get-wiminfo /wimfile:%1 /index:%index% ^| find /i "name"') do ( echo Instaluj© %%G %%H)
- md W:\sd
- rem wimlib-imagex.exe apply %1 %index% W:\
- dism /Apply-Image /ImageFile:%1 /Index:%index% /ApplyDir:W:\ /scratchdir:W:\sd
- rem imagex.exe /apply %1 1 W:\
- rd W:\sd
- echo.
- if /i not [%FW%]==[efi] goto :do_bios_bcd
- if /i [%FW%]==[efi] goto :do_efi_bcd
- :do_bios_bcd
- bcdboot W:\Windows /d /s S: /l pl-pl /f BIOS
- goto :reco
- :do_efi_bcd
- bcdboot W:\Windows /d /s S: /l pl-pl /f UEFI
- goto :reco
- :reco
- echo.
- if /i not [%reco%]==[B] goto :ok
- md R:\Recovery\WindowsRE
- xcopy /cherky W:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE\ >nul
- W:\Windows\System32\Reagentc /Setreimage /Path R:\Recovery\WindowsRE /Target W:\Windows 2>nul
- W:\Windows\System32\Reagentc /info /Target W:\Windows >nul 2>nul
- goto :ok
- :ok
- echo.
- echo System zainstalowany.
- :not_ok
- endlocal
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement