как сделать файл bat на usb?

1811
mina nageh

Я хочу сделать командный файл, который открывает несколько программ, таких как установка драйверов, как эта

cd\ D: (the usb drive letter ) start sound driver.exe start tochpad driver.exe 

Просто от открытия командного файла с жесткого диска компьютера, а не USB-Pendrive.

И проблема в том, что usb меняет букву диска на каждом компьютере. Ребята, какая помощь здесь, пожалуйста?

enter image description here

0
программы, которые я хочу запустить, находятся в USB, а не на жестком диске mina nageh 7 лет назад 0
Почему бы не поставить пакет на накопитель? Seth 7 лет назад 0
потому что я хочу запустить его с жесткого диска mina nageh 7 лет назад 0
Да, но какова причина этого? Зачем вам эта партия на жестком диске (как она туда попала?), А не соответствующие файлы драйверов? Метод цикла помог вам? Seth 7 лет назад 0
нет, это не помогло мне, потому что я не знал, как его использовать ... он работал и показал мне букву USB-диска, но как я могу его использовать .... тот, который работал со мной, это ----- - @echo off для / F "tokens = 1 *" %% a in ('fsutil fsinfo жесты') делать (для %% c in (%% b) делать (для / F "токены = 3" %% d в ('fsutil fsinfo тип диска %% c') делать (если %% d equ съемный (echo диск %% c является съемным (USB ^))))) mina nageh 7 лет назад 0
Не оставляйте код в комментариях. ;) Разберись, что выводит букву диска и оттуда работает. Вот где вы хотите, чтобы ваш код пошел. Seth 7 лет назад 0
Я пытался, но не знал, как использовать появившуюся букву диска ... пожалуйста, помогите mina nageh 7 лет назад 0
Таким образом, вы понятия не имеете, что вы на самом деле делаете? Просто замените `D:` в вашем примере на `%% c`. Seth 7 лет назад 0
так что это будет как @echo off для / F "tokens = 1 *" %% a in ('fsutil fsinfo жесты') do (для %% c в (%% b) do (для / F "tokens = 3") %% d in ('fsutil fsinfo тип диска %% c') делать (если %% d equ съемный (эхо-диск %% c является съемным (USB ^))))) cd \ %% c: запустить звуковой драйвер start.exe start tochpad driver.exe mina nageh 7 лет назад 0
потому что он не работал со мной http://postimg.org/image/6uekcro3p/ mina nageh 7 лет назад 0
Не размещайте код в комментариях. Ваш код неверен. %% c не имеет: в конце и является неправильным местом. Это должно быть в цикле, а не за ним. Посмотрите на форматирование в моем ответе и поместите его на тот же уровень, что и эхо. Seth 7 лет назад 0
НЕ РАБОТАЕТ также http://postimg.org/image/tkcqfpx0l/ mina nageh 7 лет назад 0
первый ничего не показал mina nageh 7 лет назад 0
СПАСИБО, ЧТО Я НАШЕЛ ПРОБЛЕМУ, МОЯ ПИСЬМА ПРИВОДА НЕ БЫЛА В ЭТОМ (D: E: F: G: H: I: и т.д ...) ТАК, Я ДОБАВЛЕН mina nageh 7 лет назад 0
Приятно, что это помогло. В качестве альтернативы вы можете использовать `cd / D %% c`, который также должен работать с методом` fsutil`. Seth 7 лет назад 0

2 ответа на вопрос

1
Seth

Поместите какой-нибудь идентификационный файл на диск и выполните итерации дисков. Если вы найдете указанный файл, вы знаете, что нашли Pendrive. Это перестанет работать, если указанный файл отсутствует.

Примером этого может быть: Обнаружение USB и копирование . на USB-накопитель с помощью пакетного скрипта

В соответствии с этим самым простым способом было бы предположить наличие файла с именем «USB.txt»:

@echo off for %%d in (D: E: F: G: H: I: etc...) do ( if exist %%d\USB.txt ( echo USB at drive %%d connected %%d start sound driver.exe start tochpad driver.exe ) ) 

Для лучшего решения (ов) проверьте вопрос, который я связал. Выше уже есть несколько ловушек, так как кто-то может использовать A: и B: как обычные буквы диска или USB.txt может не присутствовать.

Если вы посмотрите на «исправленное» решение из этого вопроса, это будет:

@echo off for /F "tokens=1*" %%a in ('fsutil fsinfo drives') do ( for %%c in (%%b) do ( for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do ( if %%d equ Removable ( echo Drive %%c is Removable (USB^) %%c start sound driver.exe start tochpad driver.exe ) ) ) ) 

То, что я могу сказать, fsutilдолжно быть выполнено с правами администратора, так что вам придется следить за этим в зависимости от того, что вы делаете.

0
Yorik

Я полагаю, что при нажатии (запуске) bat-файла из проводника в текущем каталоге указывается местоположение командного файла.

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

Так что просто используйте, CD \который будет гарантировать, что вы находитесь на корневом уровне диска, на котором вы находитесь.

Вам также не нужно использовать букву диска для доступа к другим каталогам на том же диске. Если вы находитесь в папке c:\temp:

123\file.txt эквивалентно c:\temp\123\file.txt (без косой черты, поэтому путь добавляется к текущему пути)

\123\file.txtэквивалентно c:\123\file.txt(начальная косая черта, поэтому путь добавляется только к букве диска (называется «корень»)

Это может немного усложниться, если вы запускаете другие пакетные файлы из пакетного файла, которым также необходимо знать, в каком каталоге они находятся. Я не думаю, что вы находитесь в такой ситуации на основании вашего примера.

см. также ( https://stackoverflow.com/questions/16255184/ ) для более подробного обсуждения того, как найти текущий рабочий каталог.

также обратите внимание, что в вашем примере вы сначала переключитесь на правильный диск *, а затем перейдете в нужный каталог с помощью `cd`. В вашем примере это все равно сработало бы, но если бы у вас был `cd \ temp`, а затем` d: `вы бы ** не ** были бы в` d: \ temp` Yorik 7 лет назад 0
брат, я знаю все, что ты набрал .. что я хочу сделать, это запустить пакетный файл с раздела компьютера, чтобы открыть программу в USB .. и мне нужно, чтобы пакетный файл автоматически находил букву диска USB и использовать это потому, что он меняется каждый раз mina nageh 7 лет назад 0
Для пакетов вы также можете использовать [`~ dp0`] (http://stackoverflow.com/questions/5034076/what-does-dp0-mean-and-how-does-it-work) с помощью` cd / D `это обеспечит смену диска. Seth 7 лет назад 0
этот файл bat запускает звуковой файл driver.exe запускает tochpad driver.exe ..... любой может отредактировать его для меня, потому что я не понял метод NB. эти файлы в USB mina nageh 7 лет назад 0

Похожие вопросы