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

Компьютерный форум 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

 

Ветеран


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

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


Павлины, Конкретные предложения, говоришь … Я бы начал с общих.

Код: Выделить весь код
for %%i 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 %%i:\bootmgr set CDROM=%%i:
У меня в корне раздела установленной «Windows 7» лежит «bootmgr». Если DVD не был вставлен (или не опознан, ошибка чтения и пр.) — что будет с переменной окружения «CDROM»?

P.S. В предположении, что мы запускаем пакетный файл из-под «Windows 7», ибо ниже есть упоминание «choice.exe», которая в XP отсутствует.

Следом ещё одна:
Код: Выделить весь код
@echo off
Зачем вторично?!

Код: Выделить весь код
echo list disk>c:\script1.txt
echo exit>>c:\script1.txt
echo 5. Wait for list of existing disks...
diskpart /s c:\script1.txt
Ну, а если нет «c:»?! Почему создаём не в положенном месте, «%temp%»? Вообще, имя файла («c:\script1.txt») лучше задать один раз, затем использовать переменную.

И, если уж вывод «diskpart» предлагается для последующего выбора, то его (вывод) стоит фильтровать, отображая ровно то, что является значимым для задачи.

Код: Выделить весь код
choice /C 01234 /M "6. Choose your USB-drive number".
Предположение, что дисков может быть не более четырёх давно не соответствует истине. Во времена IDE на это ещё стоило полагаться, но нынче… Несерьёзно.

Код: Выделить весь код
set FLASH=0
if errorlevel=5 Goto 1

…Длинная портянка кода…

:4
set FLASH=1
Goto end

:end
Проще что-то наподобие:
Код: Выделить весь код
set /a FLASH=%ERRORLEVEL% - 1
Можно и без «%%», лишь бы расширенная обработка команд была включена.

Очередная, уже третья:
Код: Выделить весь код
@echo off
Код: Выделить весь код
echo clean>>c:\script2.txt
…
diskpart /s c:\script2.txt
А вот перед очисткой диска дополнительный запрос подтверждения необратимо деструктивных действий (с подсказкой) очень не помешал бы.

Сначала Вы пишете, что:
Цитата:
единственное - вначале батник просит создать текстовой файл с названием myusb.txt в корневой директории флешки, чтобы определить ее букву и не перепутать с другим диском...
а затем в скрипте «ручками» предлагаете указывать диск. Буквально на днях была тема по решению близкой задачи — найти взаимное соответствие Диск⇔Раздел⇔Логический диск. Переменные не очищаются, а команды «setlocal» нету, файл в корне диска C: создаётся и не удаляется. Зато «@echo off» целых три…

Такое впечатление, что Вы сложили в одну кучу несколько пакетных файлов, не слишком заботясь об их приведении к мало-мальски единому целому. Как-то так.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:05, 23-01-2011 | #2



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

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


Аватара для ArmDeForcer

Старожил


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

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


Цитата:
файл в корне диска C: создаётся и не удаляется. Зато «@echo off» целых три…
Спасибо. Подправлю... с @echo я переборщил, это когда куски тестил - забыл удалить...
Очень давно батники не писал..)) Недавно, сел и за час накатал, от нечего делать...
А временные файлы таки удаляются, в конце кода...

Цитата:
У меня в корне раздела установленной «Windows 7» лежит «bootmgr». Если DVD не был вставлен (или не опознан, ошибка чтения и пр.) — что будет с переменной окружения «CDROM»?
Диск С стоит удалить из поиска? Знаю, логики не хватает, просто батч просит вставить диск Windows перед тем как продолжать...
Все таки, цель была батник написать, а не целую программу... Хотя, можно и проверки вставить.

Цитата Iska:
Предположение, что дисков может быть не более четырёх давно не соответствует истине. Во времена IDE на это ещё стоило полагаться, но нынче… Несерьёзно. »
вообще-то - 5 дисков, думал я про это...

Последний раз редактировалось ArmDeForcer, 23-01-2011 в 12:36.


Отправлено: 12:27, 23-01-2011 | #3


Ветеран


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

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


Зачем флешку в NTFS форматировать? Чем fat не подходит?
Одну команду в diskpart можно передать входящим потоком:
Код: Выделить весь код
echo list disk | diskpart
Это сообщение посчитали полезным следующие участники:

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


Аватара для 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


Аватара для ArmDeForcer

Старожил


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

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


В продолжение об:

Цитата Iska:
Сначала Вы пишете, что:
Цитата:
единственное - вначале батник просит создать текстовой файл с названием myusb.txt в корневой директории флешки, чтобы определить ее букву и не перепутать с другим диском...

а затем в скрипте «ручками» предлагаете указывать диск. Буквально на днях была тема по решению близкой задачи — найти взаимное соответствие Диск⇔Раздел⇔Логический диск. Переменные не очищаются, а команды «setlocal» нету »
Пытаюсь решить проблему с созданием вручную файла myusb.txt

Значит, имеется код, который выводит буквы и номера доступных USB дисков...
Пользователь выбирает нужный драйв... а дальше, как мне ассоциировать номер диска с его буквой и задать это в переменные?

Код: Выделить весь код
@echo off

setlocal EnableDelayedExpansion
set Q='wmic  diskdrive where "interfacetype="USB""   assoc /assocclass:Win32_DiskDriveToDiskPartition'
echo LIST OF USB-DRIVES FOUND ON YOUR SYSTEM:
for /f "tokens=2,3,4,5 delims=,= " %%a in (%Q%) do (
  set hd=%%a %%b, %%c %%d
  
  call :_LIST_LETTER !hd!)
goto :_END

:_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 %1 %Part_letter% 

goto :_EOF


:_END
choice /c 0123456789 /m "CHOOSE YOUR USB-DRIVE NUBER:"
set /a DRVnum=%ERRORLEVEL%-1
echo YOU CHOOSED USB-DRIVE NUMBER %DRVnum% 

pause
:_EOF

Отправлено: 13:37, 24-01-2011 | #6


Аватара для ArmDeForcer

Старожил


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

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


Ясно... никто не может помочь...

Решил проблему так:

Код: Выделить весь код
rem выбираем USB
echo 2. LISTING PHYSICAL DRIVES ON YOUR SYSTEM:
echo ____________________________________________________________________________________
wmic  diskdrive list brief
echo ____________________________________________________________________________________
echo ********************************************
choice /c 0123456789 /m "3. ENTER YOUR USB-DRIVE DeviceID NUMBER (PHYSICALDRIVE#):"
set /a DRVnum=%ERRORLEVEL%-1

rem находим букву USB
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 4. YOU CHOOSED DRIVE  %Part_letter% %1
goto :eof

:_next

:eof
Полный скрипт тут:
читать дальше »

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

rem находим букву USB
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 4. 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 5. 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 6. CREATING TEMP FILE...
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
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 A PARTITION COMPLETED!
echo ********************************************
echo 10. CREATING BOOT RECORD...
%CDROM%\Boot\bootsect.exe /nt60 %Part_letter% 
echo ********************************************
echo 11. COPYING INSTALLATION FILES TO USB-DRIVE
echo PLEASE WAIT...
rem копируем файлы по тихому
xcopy %CDROM% %Part_letter% /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 ERROR! EXITING COMMAND FILE!
echo PRESS ANY KEY TO FINISH!
echo ********************************************
pause
exit

:eof

Отправлено: 13:05, 26-01-2011 | #7


Аватара для shao

Ветеран


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

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


Извините, а можно объяснить поподробнее, что это за переменные и в каких случаях используются :
%USBDrv% и %DRVnum% ?
Спасибо !

Отправлено: 03:38, 29-01-2011 | #8


Аватара для ArmDeForcer

Старожил


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

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


Цитата shao:
Извините, а можно объяснить поподробнее, что это за переменные и в каких случаях используются :
%USBDrv% и %DRVnum% ?
Спасибо ! »
Это обычные строковые переменные, которые я задал и так назвал, это не системные переменные...

DRVnum - сокращение от "drive number", это переменная хранит номер физического диска, который выбирает пользователь (смотрите код в шапке, остальное не актуально).

Командный файл выдает список физических дисков в системе и просит выбрать номер вашего USB устройства (возможно в системе несколько таких), когда пользователь вводит номер - он присваивается переменной DRVnum, которая и используется в последующих командах...
Затем по номеру выбираем нужный диск, проверяем, действительно ли у него интерфейс USB и находим букву, которую задаем в переменную Part_letter. Теперь, зная номер диска и букву тома, можно спокойно выполнять операции с флешкой...

USBDrv - такая же переменная, использовалась в промежуточном коде, в процессе решения некоторых нюансов, в конечном коде - ее нет...

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

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

Отправлено: 09:37, 29-01-2011 | #9


Аватара для shao

Ветеран


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

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


Спасибо за ответ!

Цитата ArmDeForcer:
просит выбрать номер вашего USB устройства (возможно в системе несколько таких), когда пользователь вводит номер........ »
А как это сделать автоматически, без участия ползователя, при условии , что USB устройство - это USB-flash и одно ?

И ещё (не совсем в тему, но приблизительно) - как быть в таком случае:
Вот , здесь например, всё понятно:
Код: Выделить весь код
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 ?
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:13, 29-01-2011 | #10



Компьютерный форум 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




 
Переход