Batch Laufwerksnamen und Buchstaben auslesen

CED999

Lieutenant
Registriert
Juni 2011
Beiträge
969
Hallo,
ich versuche gerade in einer .cmd folgendes zu realisieren:
  1. Lies den Namen des Laufwerks f aus und speicher ihn in einer variablen
  2. wenn er gleich "mybackups" ist dann weiter...

Im Netz habe ich folgedes gefunden nur leider funktioniert das nicht...

Code:
@echo:off
for /f %%D in ('wmic volume get DriveLetter^, Label ^| find "Backup"') do set myDrive=%%D
echo %myDrive%

pause
 
Du hast wohl die falschen Hochkommas benutzt. Versuche mal ` statt '
 
dann kommt Datei WMI nicht gefunden.... Vielleicht weiß jemand einen anderen Weg das zu realisieren...
 
Code:
for /f "delims=" %%x in ('wmic volume get driveletter^, label ^| findstr /i abc') do (
  echo %%x
)
Geht wunderbar. Was kommt denn für ein Fehler?
 
Hi Yuuri gut das funzt schon mal soweit, aber wie mache ich jetzt die Überprüfung, dass das Laufwerk einem Buchstaben entspricht??

Code:
for /f "delims=" %%x in ('wmic volume get driveletter^, label ^| findstr /i Backup')
if %%X=="Z" echo testbestanden

funzt jedenfalls nicht.
 
Code:
for /f "tokens=1,2" %%a in ('wmic volume get driveletter^, label ^| findstr /i abc') do (
	echo buchstabe = %%a
	echo titel     = %%b
	echo.
)
Dafür sind die Tokens da, die Delimiter lässt du weg.
Code:
delims=xxx      - Gibt einen Satz von Trennzeichen an. Diese ersetzen
                  die Standardtrennzeichen TAB und Leerzeichen.
tokens=x,y,m-n  - Gibt an, welche Token von jeder Zeile an die
                  FOR-Schleife weitergegeben werden.
                  Das führt dazu, dass zusätzliche Variablen erstellt
                  werden. Mit der Form m-n wird dabei ein Bereich vom
                  m-ten bis zum  n-ten Token angegeben. Wenn das letzte
                  Zeichen ein Sternchen ist, wird eine zusätzliche
                  Variable deklariert, die den verbleibenden Text
                  dieser Zeile enthält.
 
Ah super Yuri :daumen:: jetzt kanns weiter gehen. Danke auch für den super Hinweis mit den Tokens...
 
Die Abfrage kann auch direkt in wmic erfolgen.
Code:
@echo off
for /f %%a in ('wmic volume where Label^='Windows8_OS' get DriveLetter ^| find ":"') do set "DriveLetter=%%~a"
echo %DriveLetter%
Das funktioniert, solange "volume label" nicht mehrfach vorkommt.
 
Zurück
Oben