Advertisement
Guest User

install.cmd

a guest
Nov 30th, 2016
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. cls
  2. @echo off
  3. setlocal enableextensions enabledelayedexpansion
  4. CHCP 852 >nul
  5.  
  6. %~d0
  7. cd %~p0
  8.  
  9. if /i [%1]==[] (echo nie podano argumentu.) & goto :not_ok
  10. if /i [%2]==[] (set index=1) else (set index=%2)
  11.  
  12. for /f "tokens=2 delims= " %%G in ('call dism /get-wiminfo /wimfile:%1 /index:%index%  ^| find /i "error:"') do (set EL=%%G)
  13.  
  14. if /i not [%EL%]==[] echo Plik nie zawiera obrazu o indeksie %index% & goto :not_ok
  15.  
  16. set /P efi=Czy zainstalowa† system w trybie UEFI (T czy N)?:
  17. set /P reco=Konfiguracja dysku i partycji recovery (A=15GB, B=1GB, Z=Custom, P=Pomiä, N)?:
  18.  
  19. if /i not [%reco%]==[A] if /i not [%reco%]==[B] if /i not [%reco%]==[Z] if /i not [%reco%]==[P] set reco=C
  20. if /i [%efi%]==[T] set FW=efi
  21. if /i [%efi%]==[Y] set FW=efi
  22.  
  23. if /i [%reco%]==[P] goto :do_select
  24.  
  25. echo.
  26. set /a count=0
  27. set disknr=
  28. for /f "tokens=2" %%A in ('^(echo lis dis^) ^| diskpart ^| find /i "online"') do (call :dsk1 "%%A")
  29. if [%count%]==[1] (set disknr=0 & goto :disknr)
  30. if [%count%]==[0] (echo Nie wykryto dysk˘w umoľliwiajĄcych instalacj©. & goto :not_ok)
  31. echo.
  32. if [%count%] GTR [1] echo Wykryto kilka dysk˘w umoľliwiajĄcych instalacj©:
  33. echo.
  34. set /P disknr=Na kt˘rym instalowa†?:
  35. echo.
  36. if /i [%disknr%] == [] (echo Nie wybrano dysku.) & goto :not_ok
  37. for /f %%A in ('^(echo %okdisks%^) ^| find /c /i "%disknr%"') do (if /i [%%A]==[0] (echo Nieprawidˆowy dysk.) & goto :not_ok)
  38. 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)
  39. goto :not_ok
  40.  
  41. :dsk1
  42. 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))
  43. goto :not_ok
  44.  
  45. :dsk2
  46. for /f "tokens=1,2,4,5" %%A in ('^(echo lis dis^) ^| diskpart ^| find /i "disk %~1"') do (set dnr="%%A %%B  -  %%C %%D")
  47. 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)
  48. goto :not_ok
  49.  
  50. :dsk3
  51. if /i [%select_disk%]==[T] set select_disk=true
  52. if /i [%select_disk%]==[Y] set select_disk=true
  53. if /i not [%select_disk%]==[true] (echo Nie potwierdzono. Wychodz©.) & goto :not_ok
  54. goto :disknr
  55.  
  56. :do_select
  57. echo.
  58. echo Wybrano r©cznĄ konfiguracj©.
  59. echo Potwierd« kt˘re woluminy chcesz oznaczy† jako S i W (podaj nr. z listy):
  60. echo.
  61. (echo lis vol) | diskpart
  62. (echo exit) | diskpart >nul
  63. echo.
  64. set /P s=Podaj numer woluminu S:
  65. if /i not [%s%] NEQ [] (echo Nie ustawiono poprawnych parametr˘w) & goto :not_ok
  66. 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)
  67. 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)?:")
  68.  
  69. if /i [%select_s%]==[T] set select_s=true
  70. if /i [%select_s%]==[Y] set select_s=true
  71. if /i not [%select_s%]==[true] (echo Nie potwierdzono. Wychodz©.) & goto :not_ok
  72.  
  73. set /P w=Podaj numer woluminu W:
  74. if /i not [%w%] NEQ [] (echo Nie ustawiono poprawnych parametr˘w) & goto :not_ok
  75. 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)
  76. 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)?:")
  77.  
  78. if /i [%select_w%]==[T] set select_w=true
  79. if /i [%select_w%]==[Y] set select_w=true
  80. if /i not [%select_w%]==[true] (echo Nie potwierdzono. Wychodz©.) & goto :not_ok
  81.  
  82. set /P select_format=Czy formatowa† wolumin W (T czy N)?:
  83. if /i [%select_format%]==[T] (echo sel vol %w% & echo for quick fs=ntfs label=Windows) | diskpart >nul
  84. if /i [%select_format%]==[Y] (echo sel vol %w% & echo for quick fs=ntfs label=Windows) | diskpart >nul
  85. (echo sel vol %s% & echo ass letter=S & echo sel vol %w% & echo ass letter=W) | diskpart >nul
  86. (echo exit) | diskpart >nul
  87. goto :do_dism
  88.  
  89. :disknr
  90. (echo exit) | diskpart >nul
  91. echo.
  92.  
  93. if /i not [%FW%]==[efi] goto :do_bios_disk
  94. if /i [%FW%]==[efi] goto :do_efi_disk
  95.  
  96. :do_bios_disk
  97. echo Prosz© czeka† - trwa konfigurowanie dysku.
  98. 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
  99. if /i [%reco%]==[Z] diskpart /s n:\custom.txt >nul
  100. 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
  101. 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
  102. 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
  103. 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
  104. (echo lis vol) | diskpart
  105. (echo exit) | diskpart >nul
  106. goto :do_dism
  107.  
  108. :do_efi_disk
  109. echo Prosz© czeka† - trwa konfigurowanie dysku.
  110. 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
  111. if /i not [%reco%]==[Z] (echo sel dis %disknr% & echo cre par msr size=100)  | diskpart >nul
  112. if /i [%reco%]==[Z] diskpart /s n:\custom.txt >nul
  113. 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
  114. 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
  115. 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
  116. 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
  117. (echo lis vol) | diskpart
  118. (echo exit) | diskpart >nul
  119. goto :do_dism
  120.  
  121. :do_dism
  122. echo.
  123. echo.
  124. for /f "tokens=3,* delims= " %%G in ('call dism /get-wiminfo /wimfile:%1 /index:%index%  ^| find /i "name"') do ( echo Instaluj© %%G %%H)
  125. md W:\sd
  126.  
  127. rem wimlib-imagex.exe apply %1 %index% W:\
  128.  
  129. dism /Apply-Image /ImageFile:%1 /Index:%index% /ApplyDir:W:\ /scratchdir:W:\sd
  130.  
  131. rem imagex.exe /apply %1 1 W:\
  132.  
  133. rd W:\sd
  134. echo.
  135. if /i not [%FW%]==[efi] goto :do_bios_bcd
  136. if /i [%FW%]==[efi] goto :do_efi_bcd
  137.  
  138. :do_bios_bcd
  139. bcdboot W:\Windows /d /s S: /l pl-pl /f BIOS
  140. goto :reco
  141. :do_efi_bcd
  142. bcdboot W:\Windows /d /s S: /l pl-pl /f UEFI
  143. goto :reco
  144.  
  145. :reco
  146. echo.
  147. if /i not [%reco%]==[B] goto :ok
  148. md R:\Recovery\WindowsRE
  149. xcopy /cherky W:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE\ >nul
  150. W:\Windows\System32\Reagentc /Setreimage /Path R:\Recovery\WindowsRE /Target W:\Windows 2>nul
  151. W:\Windows\System32\Reagentc /info /Target W:\Windows >nul 2>nul
  152. goto :ok
  153.  
  154. :ok
  155. echo.
  156. echo System zainstalowany.
  157. :not_ok
  158.  
  159. endlocal
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement