Batch file Problem beim USB Auswerfen

OP #6063068
Lesenswert?

Hallo zusammen,

ich habe vereinfacht folgendes Problem:
Ich habe ein batch file geschrieben, welches ein Programm startet. Das 
Batchfile liegt auf einem USB Stick und wird von da gestartet. Das 
Programm liegt allerdings auf der Festplatte. Dieses Programm wiederum 
soll den USB Stick auswerfen. Leider funktioniert das nicht, da Windows 
sagt, dass das Programm vom USB Stick gestartet wurde. Das batch file 
schließt sich ordnungsgemäß, nachdem es das Programm gestartet hat, 
allerdings lässt sich der USB Stick nicht auswerfen.

Das batch file sieht so aus:
1
@echo on
2

3
start D:\Programm.exe
4

5
EXIT

Ich habe für Win XP, Win 7 und Win 10 das gleiche Phänomen. Kann mir 
jemand helfen? Vielen Dank im Voraus.
Gast #6063082
Lesenswert?

Thomas K. schrieb:

> Ich habe für Win XP, Win 7 und Win 10 das gleiche Phänomen. Kann mir
> jemand helfen?

Der einzige mögliche Ausweg: das Auswerfprogramm muss mit dem Auswerfen 
warten, bis der Batchprozess terminiert hat.

Was ich aber nicht verstehe: Wenn das Auswerfprogramm ohnehin auf dem 
Ziel-PC ist, warum kann das Batchfile nicht auch dort liegen? Damit 
würde sich das Problem von ganz allein in Luft auflösen...
#6063798
Lesenswert?

Versuch das:
1
cd /d D:\
2
start /I D:\Test.exe
3
exit
Bei mir unter Win10 funktioniert es.

xyz schrieb:
> Solange "Programm.exe" aktiv ist, kann man logischerweise
> den Datenträger nicht entfernen...

So ein Bullshit!
Das Programm muss einfach nur in einer seperaten "Instanz" gestartet 
werden.

xyz schrieb:
> Darauf sollte auch ein Hauptschöler kommen.

"Hauptschöler" ja gut, das erklärt wohl deine Aussage.
Gast #6065333
Lesenswert?

Thomas K. schrieb:

> WIRO schrieb:
>> cd /d D:\
>> start D:\Programm.exe
>> exit
>
>
> Die Befehlskette funktioniert.

Das ist mehr oder weniger Zufall.

Was MIRO getan hat, ist: er hat dafür gesorgt, das das aktuelle 
Verzeichnis des CMD-Prozesses, der deinen Batch abarbeitet, nicht mehr 
auf dem Stick liegt. Das schließt ein "störendes" Handle. Es gibt aber 
immer noch das Handle, über das der CMD-Prozess auf das Batchfile 
zugreift.

Und nun kommt es darauf an, was schneller ist: CMD mit dem Einlesen und 
ausführen von "exit" oder das von "start" gestartete Programm zum 
Auswerfen des Sticks.

Sprich: du hast nur sicheres Scheitern gegen mögliches Scheitern 
getauscht. OK, ist ein Fortschritt. Aber kompetente Problemlösung geht 
anders...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren