Was ist der Laufwerksbuchstabe von Usb-Sticks?

3 Antworten

Im einfachsten Fall startest Du Deine Batch ohnehin vom Stick. dann ist der inhalt der Parametervariable %~d0 immer der von dem Laufwerk, wo sie gestartet wird.

Die Abfrage ob und welcher USB-Stick überhaupt eingesteckt ist geht nur über das WMI

wmic volume

mit etwas Filterei und einem gesetzten Volume-Label ist die Aufgabe einfach:

demo.cmd

@echo off
setlocal enableDelayedExpansion


  rem hier  dein gesuchtes  Label (selbst vergebener Laufwerksname) angeben (ESD-USB ist Mein Stick da   must  du  einen eigenen Namen einsetzen.)
set "meinLabel=ESD-USB"


  rem drivetype  2=USB-Stick 3=Harddrive 5=OpticalDrive 
  rem nur Type 2 laufwerkbuchstabe und Label Abfragen
for /f "usebackq skip=2 tokens=* delims=" %%a in (`wmic volume where Drivetype^=2 get DriveLetter^,Label^,SystemVolume /format:csv`) do (
      rem leere Felder (,,) im csv durch ,n/a, ersetzen, sonst  kommt die Auswertung durcheinander!
    set "dummy=%%a"
    set "dummy=!dummy:,,=,n/a,!"
    for /f "tokens=2,3 delims=:," %%b in ("!dummy!") do (
        set "Label.%%b=%%~c"
    )
)

 echo:
 echo  erzeugte variablen und  deren Inhalt...
 set label.


for %%a in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
   if /i "!Label.%%a!"=="%meinLabel%" (
       echo  dein Stick ist in Laufwerk %%a ...
   )
)
pause
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Nein. Du musst die Windows Registry oder den WMI Dienst von Windows abfragen um eingesteckte USB Sticks und deren Laufwerksbuchstaben zu ermitteln. Frameworks .NET ist dein Freund.

Mit ner DOS-Batch kommst du nicht weit, ggfls. mit einer Perl-Extension. Oder Powershell.

Erzesel  08.02.2020, 14:37
Mit ner DOS-Batch kommst du nicht weit

kleiner Pessimist...😏

Generell kann kann man mit Batch so ziemlich alles tun, man muss nur wissen wie...🥱

1