Arquivo em lote para criar uma pasta em todos os dispositivos removíveis

1

Eu preciso de um arquivo em lotes para criar uma pasta "teste" em todos os dispositivos removíveis do que eu ligar meu computador (pendrives e etc) Eu estou tentando algo parecido com isto

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

Alguém pode me dizer por que isso não está funcionando?

    
por Marcos Eduardo Lustosa 06.08.2015 / 12:38

2 respostas

1

Por que isso não está funcionando?

'wmic volume get driveLetter^ where drivertype=2

Você tem vários erros no comando wmic acima:

  • drivertype deve ser drivetype .
  • Existe um ' em fuga
  • O '^ não é necessário.
  • O where deve vir antes do get .
  • Nem todos os volumes de disco têm letras de unidade (mas os discos lógicos funcionam).

Use o seguinte arquivo em lotes:

@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

Notas:

  • Remova o echo antes de mkdir quando você testou o arquivo em lotes.
  • Você pode precisar fazer algo com o tipo de unidade 3 também.
  • Eu tenho uma unidade removível do tipo 3. Na saída abaixo C: é um disco rígido fixo, D: é minha unidade de CD-ROM, E: é um stick USB removível e F: é uma unidade USB externa removível. / p>

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

Leitura Adicional

por 06.08.2015 / 14:10
0

para obter a letra da unidade de um disco removível use:
wmic logicaldisk em que drivetype = 2 obtém o deviceid
no meu caso isso retorna:

C: \ Windows \ system32 > disco lógico wmic em que drivetype = 2 obtém o deviceid
DeviceID
E:

Eu colocaria isso em um arquivo txt e, em seguida, percorreria esse arquivo de texto ... Eu não sou um programador de lote grande, desta forma é mais fácil de depurar para mim. :)

    
por 06.08.2015 / 13:21