xxxbold
Goto Top

Batchdatei Frage

Liebes Administrator.de-Team, ich habe einige Fragen zu Batchdateien.

Ich habe folgendes Problem:

Ich würde gerne mit einer Batchdatei einen Befehl in einem neuen Fenster öffnen. Das habe ich soweit auch geschafft. Jetzt möchte ich eine Meldung im "Hauptfenster" erhalten, sobald der Befehl ausgeführt resp. abgeschlossen wurde. Hier ein kleines Beispiel für die Veranschauung:

@echo off
echo Datei wird heruntergeladen, bitte warten...
start "Download" /High bitsadmin /transfer Beispiel /download /priority high http://www.beispiel.exe "C:\Users\Meinname\Desktop\beispiel.exe"
pause

Momentan erhalte ich im Hauptfenster nur die Meldung "Datei wird heruntergeladen", aber wenn die Aktion abgeschlossen ist, erfahre ich das nicht aus dem Hauptfenster. Könnte ich eine Art Befehl hinzufügen(Habe bei Google leider nichts gefunden), sodass er darauf wartet, dass das Fenster mit dem Titel "Download" quasi "verschwunden" ist und dann im Hauptfenster die Meldung ausgibt: "Datei Beispiel wurde heruntergeladen".

Dann wäre es noch gut, wenn sich das 2. Fenster nicht in den Vordergrund schiebt, sondern im besten Fall(Falls möglich) erst 2 Sekunden in den Vordergrund und anschliessend hinter das Hauptfenster. Falls das nicht möglich wäre, einfach von Beginn hinter das Hauptfenster.

So sollte es mir möglich sein, trotz des Downloads, im Hauptfenster weitere Befehle zu tätigen.

Wenn jemand wüsste, wie ich das bewerkstelligen kann, wäre ich Ihnen sehr verbunden.

Gruss,

XXXBold

P.S. Ist das korrekt, dass ich die Personen mit "Sie" Anrede oder ist das nicht üblich?

Content-Key: 204962

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

Printed on: April 24, 2024 at 12:04 o'clock

Member: SaschaRD
SaschaRD Apr 15, 2013 at 12:05:14 (UTC)
Goto Top
Hallo,

eine Möglichkeit wäre z.B.:

echo off
echo %time%: Datei wird heruntergeladen, bitte warten...
start "Download" /High bitsadmin /transfer Beispiel /download /priority high http://www.beispiel.exe "C:\Users\Meinname\Desktop\beispiel.exe"
echo %time%: Datei wurde erfolgreich heruntergeladen
pause

Du kannst mit den Parameter ">" und ">>" die echo Sätze in eine andere Datei schreiben. Ist jedoch von Batch zu Batch nicht Ratsam. Das ist nur was für logfiles.

Beispiel:

echo Datei wird heruntergeladen, bitte warten... >> %LOGFILE%
Member: XXXBold
XXXBold Apr 15, 2013 updated at 15:36:01 (UTC)
Goto Top
Hmm.. Bei deinem Beispiel wird aber die Meldung "Datei wurde erfolgreich heruntergeladen" Sofort angezeigt, sobald das andere Fenster gestartet wurde.

Wie genau gebe ich per ">" echo Sätze in einer anderen Batchdatei aus? Und was hat dies mit meinem Problem zu tun?

Und ist es möglich, auf dem neu geöffneten Fenster weitere Befehle auszuführen? Wenn ja, wie? Wäre auch sehr dankbar für gute Links, bei denen dies gut erklärt ist.

Danke und Gruss,

XXXBold
Member: rubberman
rubberman Apr 15, 2013 updated at 16:38:44 (UTC)
Goto Top
Hallo XXXBold, willkommen im Forum.

Du hast dir da etwas ausgedacht, für das ein Batchcode nicht gedacht und ungeeignet ist.
Eine Batchdatei ist ein Arbeitstier, das am liebsten schön Zeile für Zeile von oben nach unten abarbeitet. Auf "Schönheit" wird keinen Wert gelegt, Hauptsache das Ergebnis stimmt. Somit gibt es gar nicht erst einen Befehl irgendwelche Fenster in den Vorder- oder Hintergrund zu schieben.

Ebenso wird ein "Multithreading" nicht unterstützt. Wenn du per START (ohne die Option /WAIT) arbeitest, dann wird der so aufgerufene Kindprozess asynchron ausgeführt. Es gibt keinerlei Rückmeldung an den Elternprozess.

Natürlich kannst du im Elternprozess eine Schleife laufen lassen, die permanent prüft, ob der Kindprozess noch läuft, aber
  1. ist der Elternprozess dann in der Schleife gefangen, bis der Kindprozess beendet wurde, läuft also nicht weiter und
  2. ließe sich das mit der Option /WAIT mit dem selben Ergebnis umsetzen.

Grüße
rubberman
Member: XXXBold
XXXBold Apr 15, 2013 at 20:01:43 (UTC)
Goto Top
Hmm... Dass es nicht gehen wird(Zumindest nicht so wie erhofft) habe ich mir noch halbwegs gedacht.

Nunja, dann werde ich das halt ein wenig anders lösen müssen, wird zwar ein wenig uneleganter aber was solls...

Ich denke hiermit ist die Frage beantwortet, ich bedanke mich bei allen die mir geholfen haben.

Gruss,

XXXBold