Вопрос или проблема
У меня есть USB-накопитель, буква/путь которого может отличаться, но его имя никогда не меняется. Я хотел бы узнать путь/букву этого накопителя, основываясь на его названии. Есть ли команда cmd, которая может сделать это для меня? Я долго искал и не могу найти хорошее решение.
Сейчас у меня есть:
wmic path CIM_LogicalDevice where "Name like 'driveName'" get name
что подтверждает, что конкретный накопитель действительно подключен, но как мне теперь найти его букву?
Правка 1:
Я выяснил, что это можно сделать с помощью следующей команды PowerShell:
Get-WMIObject Win32_Volume | ? { $_.Label -eq 'driveName' }
Но я не могу использовать PowerShell в моем случае…
Правка 2:
Ладно, только что понял, что могу выполнить команду PowerShell через cmd вот так:
powershell -command "Get-WMIObject Win32_Volume | ? { $_.Label -eq 'driveName' }"
Запустите команду PowerShell в cmd вот так:
powershell -command "Get-WMIObject Win32_Volume | ? { $_.Label -eq 'driveName' }"
Да, это я отвечаю на свой собственный вопрос.
Вам нужно пройтись по вашим накопителям;
-Однострочная команда cmd;
for /f "tokens=2 delims==" %D in ('wmic volume where "Label="Win7Boot"" get DriveLetter /value') do start %D:\
-сохраните как bat файл
@echo off set "usbName=Win7Boot" for /f "tokens=2 delims==" %%D in ('wmic volume where "Label="%usbName%"" get DriveLetter /value') do ( start explorer %%D:\ exit /b ) echo USB накопитель с меткой "%usbName%" не найден. pause
Ответ или решение
Как получить путь к USB-накопителю по его имени с использованием командной строки
Ваша задача заключается в нахождении пути к USB-накопителю, где имя устройства фиксировано, но буква, обозначающая дисковод, может изменяться. Вы уже пробовали несколько методов и нашли подходящее решение с использованием PowerShell. Однако, если вы хотите обойтись только командной строкой (CMD), то я могу вам предложить следующее решение.
Использование WMIC для поиска пути
WMIC (Windows Management Instrumentation Command-line) — это утилита для работы с WMI (Windows Management Instrumentation), которая позволяет получать различную информацию об оборудовании и системе в Windows. Мы можем использовать WMIC для нахождения буквы диска, основываясь на имени устройства.
Вот командa, которую вы можете использовать непосредственно в CMD:
for /f "tokens=2 delims==" %D in ('wmic volume where "Label='ИмяUSB'" get DriveLetter /value') do start %D:\
Замените ИмяUSB
на фактическое имя вашего USB-накопителя. Эта команда выполнит следующее:
- Цикл for — переберёт строки, которые получает команда WMIC.
- WMIC volume where "Label=’ИмяUSB’" get DriveLetter /value — получит букву диска для указанного имени.
- start %D: — откроет проводник Windows с указанным диском.
Сохранение в BAT файл
Если вам нужно часто использовать эту команду, вы можете создать BAT файл для автоматизации процесса.
Вот пример файла FindUSB.bat
:
@echo off
set "usbName=ИмяUSB"
for /f "tokens=2 delims==" %%D in ('wmic volume where "Label="%usbName%"" get DriveLetter /value') do (
start explorer %%D:\
exit /b
)
echo USB накопитель с меткой "%usbName%" не найден.
pause
В этом скрипте:
- Переменная
usbName
содержит имя вашего USB-накопителя. - Скрипт ищет букву диска и открывает его в проводнике.
- Если накопитель не найден, выводится соответствующее сообщение.
Заключение
Использование WMIC через командную строку — это отличный способ для автоматизации поиска USB-накопителя по его имени, если PowerShell недоступен. Применяя предложенные команда и BAT-скрипт, вы сможете легко находить нужный вам диск без лишних усилий. Это может быть особенно полезно для администраторов систем и пользователей, работающих с несколькими USB-накопителями.