2016-05-11 11 views
3

Ich habe dieses Laufwerk: KTEST(K:) - Laufwerk K mit der Bezeichnung KTEST. Ich muss herausfinden, ob ein Laufwerk mit dem Label KTEST, sei es A: oder K: oder J: existiert. In meinem Fall existiert es als KTEST(K:), aber wenn es nicht heißt, wie kann ich das tun?Wie überprüft man, ob ein Laufwerk mit einem bestimmten Etikett im Stapel vorhanden ist

Sorry, wenn wiederholt, konnte nicht wirklich herausfinden.

Einer versucht, diejenigen:

if exists KTEST:\ @echo exists

... und viele mehr!

Antwort

2

Sie könnten eine WMI-Abfrage verwenden.

wmic logicaldisk where "VolumeName='KTEST'" get Name /value 

Voll Beispiel:

@echo off 
setlocal 

for /f %%I in (
    '2^>NUL wmic logicaldisk where "VolumeName='KTEST'" get Name /value ^| find "="' 
) do set "%%I" 

if defined Name echo It exists! 

Oder mit conditional execution:

@echo off 
setlocal 

2>NUL wmic logicaldisk where "VolumeName='KTEST'" get Name /value | find "=" >NUL && (
    echo It exists! 
) || (
    echo It doesn't exist. 
) 
+0

Brauchst du keine "" Token = 2 delims == "' für 'für/F'? – aschipfl

+0

@aschipfl Nnnnope. Ich überlasse die Erklärung warum nicht als eine Übung für den Leser. :) – rojo

+0

Ah, hab es, sehr schlau, +1! – aschipfl

0
for /f "tokens=6*" %A in ('dir c:\zzzz ^| Findstr /c:"Volume in drive"') do echo %A 

Verwenden Sie %%A im Batch. Siehe for /?, dir /? und findstr /?.

+1

Gute Idee, aber Sie überprüfen nur das Etikett 'C:', was nicht der nicht abdeckt ganze Frage ... – aschipfl

Verwandte Themen