Wie zeige ich CMD, das es immer den USB wählen soll und dort nach einer bestimmten Datei suchen soll?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Schritt 1: Erstelle auf dem USB-Datenträger eine Datei namens 3e78-98eb-a4f2.id

Schritt 2: Füge an einer geeigneten Stelle das in dein Skript ein:

SET USBLETTER=?
for %%p 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 EXIST %%p:\3e78-98eb-a4f2.id USBLETTER=%%p

Dann kannst du abfragen, ob %USBLETTER% gleich ? ist und eine Fehlermeldung der Art "USB nix da." ausgeben, ansonsten enthält %USBLETTER% den Buchstaben des Laufwerks.

Skohsl  04.07.2022, 22:10

Bzw. etwas vollständiger:

@echo off
setlocal
set USBLETTER=
for %%d 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 exist %%d:\3e78-98eb-a4f2.id set USBLETTER=%%d
if "%USBLETTER%" equ "" goto nodrive
goto main
:nodrive
echo USB-Laufwerk nicht gefunden
goto end
:main

rem Dein restliches Skript kommt hier hin.

:end

0

Geht nicht mehr.

in bisherigen Windowsversionen konnte man via:

wmic logicaldisk where "drivetype =2" get

...Wechseldatenträger identifizieren. Das setzt voraus, das es sich nicht um einen als Festplatte partitionierten Stick oder eine externe HDD/SSD handelt und im Bios festgelegt ist USB Datenträger als Wechsellaufwerk zu behandeln!

Ab Windows 11 gilt der Befehl WMIC als deprecated und wurde bereits bei einigen Devel-Updates entfernt! ..und wird definitiv verschwinden.

Ich empfehle Dir nicht mehr auf Batch zu setzen und Dich Powershell zu widmen

da sähe das ganze so aus:

Get-Disk | ? {$_.BusType -eq "USB"}|get-Partition|get-Volume
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren