DOS-Befehl für Abfrage, ob Datenträger eingelegt?
Hallo,
ich muss mal wieder USB-Sticks kopieren. Gibt es einen DOS-Befehl, der prüft, ob ein Laufwerk verfügbar ist?
Ich kopiere und prüfe mittels einer Batch-Datei, die auf Tastendruck immer wieder neu loslegt. Ideal wäre ein Befehl, der prüft, ob der Stick (z.B.: Laufwerk H: ) verfügbar ist und wenn ja, mit dem Kopieren usw. anfängt.
Gibt es da was?
ich muss mal wieder USB-Sticks kopieren. Gibt es einen DOS-Befehl, der prüft, ob ein Laufwerk verfügbar ist?
Ich kopiere und prüfe mittels einer Batch-Datei, die auf Tastendruck immer wieder neu loslegt. Ideal wäre ein Befehl, der prüft, ob der Stick (z.B.: Laufwerk H: ) verfügbar ist und wenn ja, mit dem Kopieren usw. anfängt.
Gibt es da was?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 374666
Url: https://administrator.de/forum/dos-befehl-fuer-abfrage-ob-datentraeger-eingelegt-374666.html
Ausgedruckt am: 16.05.2025 um 13:05 Uhr
3 Kommentare
Neuester Kommentar

:start
if exist "H:" (
rem copy something
) else (
rem do something else
)
pause
goto start
Hi
habe mir vor ner Weile mal was ähnliches im Powershell gebastelt(Das eigentliche Script war von irgendeiner anderen Seite), um das Einstecken eines USB Sticks mit einem bestimmten Label zu erkennen und dann einen Source-Ordner da drauf zu kopieren.
Habs nur nie geschafft das zu parallelisieren, so das man mehrere Sticks gleichzeitig bespielen kann.
Evtl. hilfts dir ja. Parameter musst du natürlich anpassen
Einfach in die ISE kopieren und starten. Wenn du einen Stick einsteckst, gehts los
habe mir vor ner Weile mal was ähnliches im Powershell gebastelt(Das eigentliche Script war von irgendeiner anderen Seite), um das Einstecken eines USB Sticks mit einem bestimmten Label zu erkennen und dann einen Source-Ordner da drauf zu kopieren.
Habs nur nie geschafft das zu parallelisieren, so das man mehrere Sticks gleichzeitig bespielen kann.
Evtl. hilfts dir ja. Parameter musst du natürlich anpassen
Einfach in die ISE kopieren und starten. Wenn du einen Stick einsteckst, gehts los
Register-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange
write-host (get-date -format s) " Beginning script..."
do{
$newEvent = Wait-Event -SourceIdentifier volumeChange
$eventType = $newEvent.SourceEventArgs.NewEvent.EventType
$eventTypeName = switch($eventType)
{
1 {"Configuration changed"}
2 {"Device arrival"}
3 {"Device removal"}
4 {"docking"}
}
write-host (get-date -format s) " Event detected = " $eventTypeName
if ($eventType -eq 2)
{
$driveLetter = $newEvent.SourceEventArgs.NewEvent.DriveName
$driveLabel = ([wmi]"Win32_LogicalDisk='$driveLetter'").VolumeName
write-host (get-date -format s) " Drive name = " $driveLetter
write-host (get-date -format s) " Drive label = " $driveLabel
# Execute process if drive matches specified condition(s)
if ($driveLabel -eq 'VOLUME')
{
#check if drive is empty
if (-not (Test-Path "$driveLetter\Setup\")) {
write-host (get-date -format s) " Starting task in 2 seconds..."
start-sleep -seconds 2
#copy content
Copy-Item -Path "C:\Source\*" -Destination "$driveLetter\" -Force -Recurse | Out-Null
write-host (get-date -format s) " Task finished !"
}
}
}
Remove-Event -SourceIdentifier volumeChange
} while (1-eq1) #Loop until next event
Unregister-Event -SourceIdentifier volumeChange