Цитата Iska:
Проще что-то наподобие:
Код:
set /a FLASH=%ERRORLEVEL% - 1 »
|
Супер! Благодарен!
Цитата Busla:
Одну команду в diskpart можно передать входящим потоком:
Код:
echo list disk | diskpart »
|
Спасибо, полезно!
подредактировал
Цитата Iska:
У меня в корне раздела установленной «Windows 7» лежит «bootmgr». Если DVD не был вставлен (или не опознан, ошибка чтения и пр.) — что будет с переменной окружения «CDROM»? »
|
Исправил... Удалил С:...
Цитата Iska:
Ну, а если нет «c:»?! Почему создаём не в положенном месте, «%temp%»? Вообще, имя файла («c:\script1.txt») лучше задать один раз, затем использовать переменную. »
|
Задал...
Цитата Iska:
Предположение, что дисков может быть не более четырёх давно не соответствует истине. Во времена IDE на это ещё стоило полагаться, но нынче… Несерьёзно. »
|
Добавил до 10...
Цитата Iska:
А вот перед очисткой диска дополнительный запрос подтверждения необратимо деструктивных действий (с подсказкой) очень не помешал бы. »
|
Добавил предупреждение...
Цитата Iska:
Буквально на днях была тема по решению близкой задачи — найти взаимное соответствие Диск⇔Раздел⇔Логический диск. »
|
А ссылку можно?
Итак, вот что получилось:
Код:
@echo off
echo ========================================
echo CREATING WINDOWS 7 INSTALLATION USB-DRIVE
echo ********* by ArmDeForcer (C) 2011 *********
echo ========================================
echo ********************************************
echo PLEASE FOLLOW THE ONSCREEN INSTRUCTIONS!
echo ********************************************
echo 1. PLUG IN YOUR USB-DRIVE...
pause
echo ********************************************
rem создаем на нужном USB диске текстовой файл с именем myusb.txt
rem чтобы узнать на какой именно USB-драйв переносить файлы
echo 2. CREATE AN EMPTY TEXT FILE
echo ON YOUR USB-DRIVE, NAME IT myusb.txt
pause
echo ********************************************
rem находим и передаем в переменную букву диска
for %%d in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%d:\myusb.txt SET USBDrv=%%d:
rem проверяем на присутствие файла bootmgr на флешке
rem дабы избежать ошибки циклического копирования
if exist %USBDrv%\bootmgr del %USBDrv%\bootmgr /f /q
echo 3. INSERT YOUR WINDOWS DISK INTO DVD-DRIVE
pause
echo ********************************************
rem проверяем на присутствие диска и находим букву DVD привода
for %%i in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\bootmgr set CDROM=%%i:
rem проверяем, существуют ли временный файл с таким именем, если да - стираем
if exist %%temp%%\script.txt del %%temp%%\script.txt /q
echo 4. PLEASE WAIT FOR THE LIST OF EXISTING DISKS:
echo list disk | diskpart
echo ********************************************
rem передаем в переменную номер диска
choice /c 0123456789 /m "5. CHOOSE YOUR USB-DRIVE NUMBER".
set /A FLASH=%ERRORLEVEL%-1
:end
echo ********************************************
echo 6. CREATING TEMP FILE...
rem создаем скрипт
echo select disk %%FLASH%%>%temp%\script.txt
echo clean>>%temp%\script.txt
echo create partition primary>>%temp%\script.txt
echo select partition 1 >>%temp%\script.txt
echo active>>%temp%\script.txt
echo format fs=NTFS quick>>%temp%\script.txt
echo assign letter=%%USBDrv%%>>%temp%\script.txt
echo exit >>%temp%\script.txt
echo ********************************************
rem подтверждение перед форматированием флешки
echo 7. WARNING! YOUR USB-DRIVE WILL BE FORMATED
echo TO NTFS FILE SYSTEM AND ALL DATA WILL BE LOST!
choice /C YN /M "ARE YOU SURE YOU WANT TO CONTINUE?:"
if errorlevel=2 Goto ex
:end
rem сам процесс
echo ********************************************
echo 8. WAIT, CREATING A BOOT DRIVE PARTITION...
diskpart /s %temp%\script.txt
echo ********************************************
echo 9. CREATING OF BOOT DRIVE IS NOW COMPLETED!
echo ********************************************
echo 10. LIST OF EXISTING DRIVES ON YOUR SYSTEM:
echo ********************************************
rem никакого функционала, просто - понты
wmic logicaldisk get caption,providername,drivetype,volumename,size
echo ********************************************
echo 11. COPYING INSTALLATION FILES TO USB-DRIVE
echo PLEASE WAIT...
rem копируем файлы по тихому
%CDROM%\Boot\bootsect.exe /nt60 %USBDrv%
xcopy %CDROM% %USBDrv% /s /e /h /k /q
echo ********************************************
echo 12. DELETING TEMP FILES
echo ********************************************
rem подтираем за собой
del %temp%\script.txt /q
echo ********************************************
echo DONE! YOUR USB-DRIVE IS READY TO USE!
echo PRESS ANY KEY TO FINISH!
echo ********************************************
pause
exit
:ex
del %temp%\script.txt /q
echo ********************************************
echo EXITING COMMAND FILE!
echo PRESS ANY KEY TO FINISH!
echo ********************************************
pause
exit