Batch - Laufwerksbuchstaben ermitteln, findstr buchstäblich
Einen schönen guten Tag,
möchte in einer Batch den Laufwerksbuchstaben eines bestimmten Laufwerks ermitteln.
Derweil habe ich:
Allerdings habe ich das Problem, dass der Name nicht exakt überprüft wird.
Sprich gibt es z.B. ein Laufwerk D: mit dem Namen "TEST" und (oder auch nur) ein Laufwerk E: mit dem Namen "TEST1" so wird durch die obige
Abfrage das Laufwerk E: ermittelt.
Inzwischen habe ich das Script auf die VolumeID umgestellt, die ist ja immer 8 Stellen lang und somit habe ich dort
das Problem nicht, aber es würde mich trotzdem interessieren wie man das auch für den Namen lösten könnte.
Schon mal vielen Dank für die Vorschläge!
Grüße
Martin
möchte in einer Batch den Laufwerksbuchstaben eines bestimmten Laufwerks ermitteln.
Derweil habe ich:
for /f "tokens=1" %%i in ('wmic logicaldisk get volumename^, name ^| findstr /L /c:"TEST"') do set "ZIELLW=%%i"
Allerdings habe ich das Problem, dass der Name nicht exakt überprüft wird.
Sprich gibt es z.B. ein Laufwerk D: mit dem Namen "TEST" und (oder auch nur) ein Laufwerk E: mit dem Namen "TEST1" so wird durch die obige
Abfrage das Laufwerk E: ermittelt.
Inzwischen habe ich das Script auf die VolumeID umgestellt, die ist ja immer 8 Stellen lang und somit habe ich dort
das Problem nicht, aber es würde mich trotzdem interessieren wie man das auch für den Namen lösten könnte.
Schon mal vielen Dank für die Vorschläge!
Grüße
Martin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 375979
Url: https://administrator.de/contentid/375979
Ausgedruckt am: 21.11.2024 um 13:11 Uhr
2 Kommentare
Neuester Kommentar
Dafür gibt's WHERE.
Die 2. FOR Schleife entfernt das bei WMIC notorisch vorhandene Carriage Return vom Wert.
BTW: Für FINDSTR gibt es im Regex \< und \> für Word Boundaries.
Steffen
for /f "tokens=2 delims==" %%i in ('wmic logicaldisk where "volumename='TEST'" get name /value') do for /f %%j in ("%%i") do set "ZIELLW=%%j"
BTW: Für FINDSTR gibt es im Regex \< und \> für Word Boundaries.
findstr /rc:"\<TEST\>"
Steffen