leertaste
Goto Top

Batchdatei - Abfrage einer bestimmten USB-Platte (Laufwerksbuchstabe kann varieren)

Hallo Forumsmenschen face-smile

Ich habe da mal eine Frage (warum bin ich auch sonst hier) face-wink


Eine ähnliche Frage/Antwort habe ich in diesem Forum schon gefunden, aber noch nicht ganz meine "Endlösung" face-smile



Batch Datei, abfrage von Festplatten

@echo off % Setlocal
Set fixLWs=%temp%\FixLWs.txt
del %fixLws%

call :clean
for /f %%a in ('fsutil fsinfo drives^|find ":"') do fsutil fsinfo drivetype %%a |find "Eingebaut">>%fixlws%
REM Alle "Eingebauten" Laufwerken stehen als Zeilen "C:\ - Eingebautes Laufwerk" in %fixLWs%

For /f %%i in (%fixLWs%) do (
REM ...whatever, z.B so was:
If Exist %%i\config\myfile.xyz echo KillRoy was here>>%%i\config\myfile.xyz
REM .... oder etwas sinnvolles...
)
:: bei Bedarf weiteres Gebätsche...

:clean
rem IF Exist %fixLws% del %fixLws%
goto :eof



In der Batchdatei soll eine Abfrage stattfinden ob Laufwerk e:, f:, g: etc. ein BESTIMMTES USB-Laufwerk ist. Der Buchstaben kann wechseln weil die Platte an verschiedene PC's angeschlossen wird.

Eine einfache Batch die ich mir mal geschrieben habe kann aber nur auf Festplatten ausgeführt werden, da die Befehle Daten schreiben bzw. löschen sollen. Auf d: wenn dies z.B. ein CD-ROM Laufwerk ist kann ja logischerweise nicht geschrieben werden. Ich bekomme dort immer eine Fehlermeldung von Windows die ich gerne unterdrücken würde. Ist es möglich per Batch-Datei herauszufinden welches Laufwerk die gewünschte USB-Platte ist - wenn-GEFUNDEN-dann soll mein Befehl ausgeführt werden....?

Ich könnte mir vorstellen das eine bestimmte Datei (z.B. 'kennung.dat') auf der USB-Platte ist, die Datei könnte dann einfach abgefagt werden. Mein Problem, ich habe keinen schimmer wie ich die obige Batch-Datei (die nicht von mir ist) abwandel...


FreundlicherForumsGruss
von der Leertaste face-smile

Content-Key: 63612

Url: https://administrator.de/contentid/63612

Printed on: April 23, 2024 at 20:04 o'clock

Member: bastla
bastla Jul 12, 2007 at 07:53:25 (UTC)
Goto Top
Hallo leertaste und willkommen im Forum!

Schematisch könnte das so aussehen:
@echo off & setlocal
set LW=
for %%i in (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 %%i:\kennung.dat set LW=%%i:
if not defined LW echo Laufwerk nicht erkannt! & goto :eof
echo Laufwerk gefunden: %LW%
Um die Fortsetzung musst Du Dich dann selbst kümmern.

Grüße
bastla
Member: leertaste
leertaste Jul 12, 2007 at 08:31:08 (UTC)
Goto Top
Hallo Bastla,

ich danke für deinen schnellen Lösungsversuch, aber leider bekomme ich teilweise bei der Abfrage (z.B. weil das Laufwerk ein CD-ROM, oder ein Kartenleser ist) eine Fehlermeldung von Windows.

Ich habe zwei Rechner, bei einem klappt es wunderbar, bei dem anderen kommt halt die folgende Meldung: http://leertaste.de/temp/batch-error.gif
Die Fehlermeldung muss ich dann 3-4 mal mit 'Abbruch' quittieren und erst dann wird die Befehlsliste zu ende geführt.

Bei der von mir (oben) aufgeführten Batch-Datei (die nicht meine Lösung ist) face-big-smile kommt diese Fehlermeldung nicht und die Batchbefehle werden korrekt abgearbeitet.

FreudlicherForumsGruss
von der Leertaste face-smile
Member: bastla
bastla Jul 12, 2007 at 08:47:06 (UTC)
Goto Top
Hallo leertaste!

Und so?
@echo off & setlocal
set LW=
for /f %%a in ('fsutil fsinfo drives^|find ":"') do for /f "delims=\" %%i in ('fsutil fsinfo drivetype %%a^|find "Eingebaut"') do if exist %%i\kennung.dat set LW=%%i  
if not defined LW echo Laufwerk nicht erkannt! & goto :eof
echo Laufwerk gefunden: %LW%

Grüße
bastla
Member: leertaste
leertaste Jul 12, 2007 at 09:59:01 (UTC)
Goto Top
Und so?

Uuuund so ist ein richtig toller Schuh draus geworden face-big-smile

Vielen herzlichen Dank, das war genau das was ich gesucht habe.


Freundlicher BedankeMichGruss
von der Leertaste