1

Мне нужен командный файл для создания папки "test" на каждом съемном устройстве, чем я подключаю свой компьютер (pendrives и т. д.), я пытаюсь что-то вроде этого

set "extDrive="
for /f %%D in ('wmic volume get driveLetter^ where drivertype=2 ) do set extDrive=%%D
mkdir "%extDrive%\test"

Кто-то может сказать мне, почему это не работает ??

2 ответа2

1

Почему это не работает?

'wmic том получить getLetter ^, где тип драйвера = 2

У вас есть несколько ошибок в приведенной выше команде wmic :

  • drivertype должен быть drivetype .
  • Отсутствует трейлинг ' .
  • `^ Не нужен.
  • where должно прийти, прежде чем get .
  • Не все дисковые тома имеют буквы дисков (но логические диски имеют).

Используйте следующий пакетный файл:

@echo off
setlocal
for /f "skip=1 tokens=1,2" %%d in ('wmic logicaldisk get caption^, drivetype') do (
  if [%%e]==[2] echo mkdir %%d\test
  )
endlocal

Заметки:

  • Удалите echo перед mkdir когда вы проверили командный файл.
  • Возможно, вам придется что-то сделать и с диском типа 3.
  • У меня есть съемный диск типа 3. В приведенном ниже выводе C: фиксированный жесткий диск, D: мой привод CD-ROM, E: съемный USB-накопитель и F: съемный внешний USB-накопитель.

    F:\test>wmic logicaldisk get deviceid, drivetype
    DeviceID  DriveType
    C:        3
    D:        5
    E:        2
    F:        3
    

Дальнейшее чтение

0

чтобы получить букву диска использования съемного диска:
wmic логический диск, где drivetype = 2 получить идентификатор устройства
в моем случае это возвращает:

C:\Windows\system32> wmic логический диск, где drivetype = 2 получить идентификатор устройства
Идентификатор устройства
E:

я бы положил это в текстовый файл, а затем перебрать этот текстовый файл ... Я не большой программист, этот способ проще для меня отладить. :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .