Alle Laufwerke in der CMD anzeigen

windows cmdArbeitet man mit der Kommandozeile und möchte zum Beispiel Dateien auf einen USB-Stick kopieren, so hat man ein Problem. Denn wie zeigt man eigentlich alle Laufwerke in der Kommadozeile (CMD) von Windows an? Ohne eine Übersicht aller Laufwerke fehlt auch die Kenntnis über den Laufwerksbuchstaben des USB-Sticks und ohne diesen fällt auch der Zugriff auf den Stick schwer.

[atkp_list id=’7163′ template=’7130′][/atkp_list]Einen Befehl um alle Laufwerke aufzulisten bietet die CMD selbst nicht. Jedoch kann man sich mit dem Kommandozeilenprogramm wmic behelfen, welches den Zugriff auf die WMI-Klassen per Kommandozeile bietet. Und so ist die Lösung auf die Frage doch ganz einfach.

Um alle Laufwerke in der CMD anzuzeigen reicht folgender Befehl:

wmic logicaldisk get deviceid, volumename, description

Alle Laufwerke in der CMD anzeigen

Laufwerke nach Typ filtern

Möchte man nicht alle, sondern nur Laufwerke eines bestimmten Typs anzeigen, so kann der wmic Befehl noch um eine where-Klausel erweitert werden.

wmic logicaldisk where drivetype=2 get deviceid, volumename, description

Alle Laufwerke eines Typs in CMD

Der obige Befehl zeigt zum Beispiel alle Wechseldatenträger an. Um einen anderen Laufwerkstyp zu wählen, muss statt der 2 ein entsprechender anderer Wert gewählt werden. Eine Übersicht der Werte findet ihr nachfolgend:

  • 0 => Unknown
  • 1 => No Root Directory
  • 2 => Removable Disk
  • 3 => Local Disk
  • 4 => Network Drive
  • 5 => Compact Disc
  • 6 => RAM Disk

Wer mehr oder ausgiebigere Infos braucht, kann sich hier einlesen oder in das am Anfang des Beitrags verlinkte Buch schauen.

5 Kommentare

  1. Friedrichsays:

    Super hilfreich! Schade nur, dass Handys nicht als USB-Datenträger erkannt werden – bei mir werden gar keine angeschlossenen Wechselmedien erkannt.
    Wenn ich mit robocopy auf die zugreifen könnte, ginge das halt deutlich schneller als über die Windows-Kopierfunktion. Aber dazu müssten sie ja erst mal erkannt werden.
    Hat vermutlich mit der Formatierung zu tun?

  2. Mäxsays:

    USB-Laufwerke werden nicht immer als Wechseldatenträger erkennt, daher habe ich es wie folgt versucht zu lösen:

    NUL
    setLocal enableExtensions DisableDelayedExpansion
    if errorLevel 1 goTo:NoExt
    echo.
    title Bilder auslesen und Texterkennung starten

    call:NoUSB_Drv
    for /F “tokens=1,2 delims==” %%a in (‘
    wmic diskdrive where “interfacetype=’USB'” get Index^, Model^, FirmwareRevision^,Partitions^,Signature^ /Value
    ‘) do call:GetUSBDrv “%%a” “%%b”

    exit /b 0

    :GetUSBDrv
    set “OB=” :: OutputBlocking
    echo.%~1|find “FirmwareRevision”>nul && set Firmware=%~2 && set “OB=FR”
    echo.%~1|find “Index”>nul && set Index=%~2 && set “OB=I”
    echo.%~1|find “Model”>nul && set Model=%~2 && set “OB=M”
    echo.%~1|find “Partitions”>nul && set Partitions=%~2 && set “OB=P”
    if not defined OB (
    if defined Model (
    echo. Model-Name: %Model%
    echo. Firmware: %Firmware%
    echo.%Partitions%|find “0”>NUL && echo. – Kein Datenträger erkannt -||(^
    Call:GetPartitions %Index%)
    echo.
    call:NoUSB_Drv
    ))
    goTo:EoF

    :NoUSB_Drv
    set “Firmware=”
    set “Index=”
    set “Model=”
    set “Partitions=”
    goTo:EoF

    :GetPartitions
    set “DiskDrive=%1″
    for /F tokens^=2^,3^ delims^=^,^” %%a in (‘
    wmic partition where “DiskIndex=%1” assoc /assocclass:Win32_LogicalDiskToPartition 2^>NUL
    ‘) do call:GetDriveLetter “%%a” “%%b”
    goTo:EoF

    :GetDriveLetter
    echo.%2|find “#”>nul && for /F tokens^=2^ delims^=^# %%a in (‘
    echo.%~2
    ‘) do set “Partition=%%a”
    echo.%1|find “:”>nul && set “Laufwerk=%~1”
    echo.%1|find “:”>nul && echo. Laufwerk: %~1 (%DiskDrive%,%Partition: =%)
    goTo:EoF

    :NoExt
    echo.
    echo. SORRY: Keine Extensions Unterstützung.
    echo. Dieses Script läuft auf Deinem System nicht!
    echo.
    pause
    exit /b 1

    • Mäxsays:

      OH ÜBEL … da fehlt ja der Anfang!
      … wie kann ich den ganzen Code hier posten ohne das die spitzen Klammern interpretiert werden? Und der Text orginal im vollständigen 850 Text-Coding erscheint?

      Die Ausgabe von meinem Programm enthält übrigens auch Leerzeichen und sieht so aus:

      Model-Name: SCANNER USB Device
      Firmware: 0.20
      Laufwerk: K: (6,0)

      Model-Name: ASMT 2105 USB Device
      Firmware: 0
      – Kein Datenträger erkannt –

      Model-Name: JMicron Generic DISK00 USB Device
      Firmware: 0103
      Laufwerk: F: (2,0)
      Laufwerk: H: (2,1)
      Laufwerk: I: (2,2)

      Model-Name: JMicron Generic DISK01 USB Device
      Firmware: 0103
      Laufwerk: E: (3,0)

      Model-Name: Kingston DataTraveler 2.0 USB Device
      Firmware: PMAP
      Laufwerk: J: (5,0)

  3. Bruno Fricksays:

    Vielen Dank für diese Information. Die Lösung mit wmic wäre super für mich,
    allerdings benötige ich das Ergebnis (Laufwerke) in einer reinen Textdatei. Mit dem “>” erreiche ich dies zwar, aber die generierte Date ist keine reine Textdatei und sie hat Leerzeichen. Das kann ich in meiner eigenen defragmetierung.cmd nicht brauchen.
    Kennen Sie eine Möglichkeit die Laufwerksbuchstaben des PC`s in eine Editor-Datei zu schreiben? Vielen Dank und Gruss aus dem Allgäu, Bruno Frick

Schreibe einen Kommentar zu Bruno Frick Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.