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 serdrivetype
. - Existe um
'
em fuga - O '^ não é necessário.
- O
where
deve vir antes doget
. - 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 demkdir
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
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- para / f - Comando Loop contra os resultados de outro comando.
- wmic - Comando de instrumentação de gerenciamento do Windows.