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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание загручной флешки Window 7 с помощью командного файла

Ответить
Настройки темы
CMD/BAT - [решено] Создание загручной флешки Window 7 с помощью командного файла

Аватара для ArmDeForcer

Старожил


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


Конфигурация

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


Изменения
Автор: ArmDeForcer
Дата: 27-01-2011
Описание: Обновление кода
Написал командный файл, для автоматизации создания загрузочного USB-драйва с Windows 7, без стороннего софта.

Для работы нужна флешка, с объемом минимум 4Гб + инсталляционный диск Windows 7

Предупреждение: USB-драйв будет отформатирован под файловую систему NTFS!


Создаем командный файл с именем win72usb.cmd
(скачать готовый файл можно здесь)

запускать win72usb.cmd с правами администратора...
следовать инструкциям на экране...

(обновленный код - 27.1.2011)
читать дальше »

Код: Выделить весь код
@echo off
@title CREATING WINDOWS 7 INSTALLATION USB-DRIVE
@mode con: cols=60 lines=20
color f1
echo.
echo =============================================
echo ^| CREATING WINDOWS 7 INSTALLATION USB-DRIVE ^|
echo ^|******** by ArmDeForcer (C) 2011 ********* ^|
echo ^|********* win72usb.cmd ver. 4.2 ********** ^|
echo =============================================
echo.
echo PLEASE FOLLOW THE ONSCREEN INSTRUCTIONS!
echo.
echo PLUG IN YOUR USB-DRIVE
pause
rem выбираем USB
@mode con: cols=127 lines=20
cls
echo.
echo LISTING EXISTING PHYSICAL DRIVES ON YOUR SYSTEM:
echo __________________________________________________________________________________________________________________________
wmic diskdrive list brief
echo __________________________________________________________________________________________________________________________
echo.
choice /c 0123456789 /m "ENTER YOUR USB-DRIVE DeviceID NUMBER (PHYSICALDRIVE#):"
set /a DRVnum=%ERRORLEVEL%-1

rem находим букву USB
@mode con: cols=60 lines=20
cls
echo.
setlocal EnableDelayedExpansion
set Q='wmic diskdrive where "Index="%DRVnum%" and Interfacetype="USB"" assoc /assocclass:Win32_DiskDriveToDiskPartition'
for /f "tokens=2,3,4,5 delims=,= " %%a in (%Q%) do (
set hd=%%a %%b, %%c %%d

call :_LIST_LETTER !hd!)
goto :_next

:_LIST_LETTER
(echo %1 |find "Disk ") >nul || goto :eof
for /f "tokens=3 delims==" %%a in ('WMIC Path Win32_LogicalDiskToPartition ^|find %1') do set TMP_letter=%%a
set Part_letter=%TMP_letter:~1,2%
echo YOU CHOOSED DRIVE %Part_letter% %1
goto :eof

:_next
echo.
rem проверяем на присутствие файла bootmgr на флешке
rem дабы избежать ошибки циклического копирования
if exist %Part_letter%\bootmgr del %Part_letter%\bootmgr /f /q
echo INSERT YOUR WINDOWS INSTALLATION DISK INTO DVD-DRIVE
pause
cls
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.
echo CREATING TEMP FILE... DONE^^!
rem создаем скрипт
echo select disk %%DRVnum%%>%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=%%Part_letter%%>>%temp%\script.txt
echo exit >>%temp%\script.txt
color f4
echo.
rem подтверждение перед форматированием флешки
echo 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
cls
color f1
rem сам процесс
echo.
echo WAIT, CREATING A BOOT DRIVE PARTITION...
diskpart /s %temp%\script.txt >nul
cls
echo.
echo CREATING A PARTITION COMPLETED^^!
cls
echo.
echo CREATING BOOT RECORD...
%CDROM%\Boot\bootsect.exe /nt60 %Part_letter%
cls
echo.
echo COPYING INSTALLATION FILES TO USB-DRIVE
echo PLEASE WAIT... (TO CANCEL PRESS CTRL+C)
rem копируем файлы по тихому
xcopy %CDROM% %Part_letter% /s /e /h /k /q
cls
echo.
echo DELETING TEMP FILES... DONE^^!
rem подтираем за собой
del %temp%\script.txt /q
echo.
echo DONE^^! YOUR USB-DRIVE IS READY TO USE^^!
echo PRESS ANY KEY TO FINISH^^!
pause
exit

:ex
cls
del %temp%\script.txt /q
echo.
echo ERROR^^! EXITING COMMAND FILE^^!
echo PRESS ANY KEY TO FINISH^^!
pause
exit

:eof


ЗЫ: Просьба, ногами сильно не бить! Если есть конкретные предложения по усовершенствованию батника - с удовольствием послушаю (прочту)...

Отправлено: 23:43, 22-01-2011

 

Аватара для ArmDeForcer

Старожил


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

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


Ну, например так, с условием, что в системе 1 USB диск:

Код: Выделить весь код
setlocal EnableDelayedExpansion
set Q='wmic  diskdrive where "Interfacetype="USB""   assoc /assocclass:Win32_DiskDriveToDiskPartition'
for /f "tokens=2,3,4,5 delims=,= " %%a in (%Q%) do (
  set hd=%%a %%b, %%c %%d
  
  call :_LIST_LETTER !hd!)
goto :_next

:_LIST_LETTER
(echo %1 |find  "Disk ") >nul || goto :eof
for /f "tokens=3 delims==" %%a in ('WMIC Path Win32_LogicalDiskToPartition  ^|find %1') do set TMP_letter=%%a
set MYUSB=%TMP_letter:~1,2%
echo YOUR USB DRIVE - %MYUSB% %1
goto :eof

:_next

:eof
переменная MYUSB - и будет буква USB-драйва

Цитата shao:
И ещё (не совсем в тему, но приблизительно) - как быть в таком случае:
Вот , здесь например, всё понятно:
Код:
FOR %%d IN (c 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:\WIN51 SET CDROM=%%d:
А если у нас не CDROM, а USB-flash ? »
Это совсем неважно, какой интерфейс у искомого тома. Надо понять, что происходит в этой строке. Переменной CDROM (можешь переименовать ее во что угодно) присваивается буква диска, у которого в корневой директории лежит файл с названием WIN51. То есть, если такой файл находится только на флешке - тогда все пройдет нормально, если же он находится и на флешке и в корневой директории другого диска (в том числе и CD), или его вообще нет ни на одном диске - то это не сработает.

Вопрос, что конкретно надо сделать? Если нужно, чтоб определялся конкретный USB, подключенный к системе, самый простой способ, создать в корневой директории этой флешки текстовой файл с уникальным названием (допустим - myusb.txt), и тогда он найдется очень легко:

Код: Выделить весь код
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:
переменной USBdrv будет присвоена буква USB флешки

Последний раз редактировалось ArmDeForcer, 29-01-2011 в 14:40.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:16, 29-01-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для shao

Ветеран


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

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


ArmDeForcer, большое спасибо за подробное объяснение !
Буду пробовать.

Отправлено: 15:18, 30-01-2011 | #12


Ветеран


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

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


Цитата ArmDeForcer:
А временные файлы таки удаляются, в конце кода... »
Дважды глядел и всё одно проглядел. ArmDeForcer, приношу Вам свои извинения на этот счёт.

Отправлено: 05:34, 10-02-2011 | #13



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание загручной флешки Window 7 с помощью командного файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] подсчет времени выполнения командного файла mitiya Скриптовые языки администрирования Windows 5 15-04-2014 10:42
Запуск командного файла с переменной в теле saavaage AutoIt 1 27-08-2010 13:21
Dial-Up - Можно ли создать dial-up соединение с помощью командного файла? Oleg48 Сетевые технологии 5 18-10-2009 11:52
CMD/BAT - [решено] Сохранение структуры папок и ее воссоздание с помощью командного файла Vadikan Скриптовые языки администрирования Windows 8 22-07-2009 01:56
Автоматическая установка драйверов с помощью командного файла Miha876 Автоматическая установка Windows 2000/XP/2003 2 21-12-2007 03:17




 
Переход