Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для ArmDeForcer

Старожил


Сообщения: 262
Благодарности: 44

Профиль | Отправить PM | Цитировать


Цитата 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

Отправлено: 21:14, 23-01-2011 | #5