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.

Lee Holmes - Windows PowerShell Pocket Reference
Lee Holmes - Windows PowerShell Pocket Reference* Preis: € 11,99 Jetzt kaufen bei eBay!*
Preis inkl. MwSt., zzgl. Versandkosten
Zuletzt aktualisiert am 18. July 2019 um 12:50 . Wir weisen darauf hin, dass sich hier angezeigte Preise inzwischen geändert haben können. Alle Angaben ohne Gewähr.
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.

AvatarÜber den Autor: Dieser Artikel, sowie 368 andere Artikel auf code-bude.net, wurden von Raffael geschrieben. – Seit 2011 blogge ich hier über Programmierung, meine Software, schreibe Tutorials und versuche mein Wissen, so gut es geht, mit meinen Lesern zu teilen. Zudem schreibe ich auf derwirtschaftsinformatiker.de über Themen meines Studiums.  //    •  • Facebook  • Twitter


4 Kommentare

  1. Avatar
    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

    • Avatar
      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)

  2. Avatar
    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

Hinterlasse einen Kommentar

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