Получить путь диска по его имени

Вопрос или проблема

У меня есть 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-накопителя. Эта команда выполнит следующее:

  1. Цикл for — переберёт строки, которые получает команда WMIC.
  2. WMIC volume where "Label=’ИмяUSB’" get DriveLetter /value — получит букву диска для указанного имени.
  3. 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-накопителями.

Оцените материал
Добавить комментарий

Капча загружается...