Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Automatischer Tastendruck an Batchdatei übergeben?!?

AH966 / 3 Antworten / Baumansicht Nickles

Hallo!

Ich habe hier ein Programm zur Wiederherstellung von Daten, das ich automatisiert laufen lassen möchte.

Das Problem ist:

Nach Aufruf des Programms dauert es ca. 30 sec. bis man aufgefordert wird, "Enter" zu drücken.
Danach kommen zwei Fragen, die mit "Y" + "Enter" bestätigt werden sollen. Zwischen den Fragen liegen ca. 10 Sekunden.

Kann man das irgendwie automatisieren???

Habe bereits folgendes versucht:
Eine Batchdatei ruft das Programm mit folgendem Befehl auf:

wiederherstellung.exe
In der Datei antwort.dat stehen eigentlich nur Zeilenwechsel (Enter) und "Y".
Bis zu einem gewissen Punkt komme ich damit, aber dann ist Sense.
Gibt es eine Möglichkeit, das besser zu kontrollieren, z.b. über einen wait-Befehl?


Gruß,AndreasDer Pfad der Gerechten ist zu beiden Seiten gesäumt mit den Freveleien der Selbstsüchtigen und der Tyrannei böser Männer...
bei Antwort benachrichtigen
HotelTango56 AH966 „Automatischer Tastendruck an Batchdatei übergeben?!?“
Optionen

Hallo Andreas,
mit einem Wait-Befehl kommst Du nicht weiter, wo soll der denn stehen?
Die erste Frage ist doch, wo "Sense" ist, ich vermute, nach 40 Sekunden. Die erste Tastaturabfrage wird richtig beantwortet, danach wartet das Programm auf die nächste richtige Antwort, die es nicht bekommt. Wie hast Du den die "Enter" eingegeben? Vermutlich in einer ASCII-Datei als Zeilenschaltung. Die Zeilenschaltung setzt sich aus zwei Zeichen zusammen, 0x0D und 0x0A. Versuche die Eingabe mit einem Hex-Editor und lasse die 0x0A weg.
Gruß
HotelTango56

bei Antwort benachrichtigen
AH966 Nachtrag zu: „Automatischer Tastendruck an Batchdatei übergeben?!?“
Optionen

Hallo HotelTango!

Danke für Deine Antwort.
Hab das zwar probiert, hat mich aber leider net zum gewünschten Ziel geführt.
Ich blick da net so durch: Wie werden die Befehle in so 'ner Antwortdatei abgearbeitet? Direkt aufeinanderfolgend, ohne zeitliche Verzögerung?

Ich versuche, auf einer Informix-Datenbank ein automatisches Restore zu fahren. Das Programm dazu (ontape) verlangt diese Parameter, aber weil zwischendurch das Band ausgelesen wird, brauch ich eine Verzögerung zwischen den zu übergebenden Parametern.

Für alle, die ähnliche Probleme haben:
Habe das ganze jetzt über ein VB-Script gelöst (bin da allerdings kein Freund von, weil's relativ wackelig ist). Ich lasse das Restore aus dem Script aufrufen und schicke die Tastatureingaben an das Programm (sendkeys). Dazwischen immer eine Pause (sleep).
Das funktioniert, sofern nichts unvorhergesehenes passiert...

Gruß,AndreasDer Pfad der Gerechten ist zu beiden Seiten gesäumt mit den Freveleien der Selbstsüchtigen und der Tyrannei böser Männer...
bei Antwort benachrichtigen
HotelTango56 AH966 „Automatischer Tastendruck an Batchdatei übergeben?!?“
Optionen

Hallo Andreas,
es hat leider eine kleine Verzögerung gegeben.
Mit der Datenbank kann ich Dir leider auch nicht helfen.
Mit der Antwordatei verhält es sich folgendermaßen. Durch das Kleiner-Zeichen wird die Standardeingabe (stdin) von der Tastatur umgeleitet, dies kann eine Datei sein, aber auch COM1: oder LPT1: oder TTY:, genauso wie die Standardausgabe (stdout) mit dem Größer-Zeichen umgeleitet werden kann. Leider verhalten sich Programme recht unterschiedlich, nicht alle lesen von stdin oder schreiben in stdout. Aber auch, wenn sie von stdin lesen, verhalten sie sich unterschiedlich, einige lesen zeichenweise, andere zeilenweise, wieder andere lesen alles, einige entleeren den Tastaturpuffer vor dem Lesen. Ontape scheint alles auf einmal zu lesen, so daß man durch das Lesen aus einer Datei nicht weiterkommt. Man kann natürlich auch mit der COM:-Schnittstelle arbeiten, wenn man ontape COM2:".
Elegant ist diese Methode sicher nicht.

Viele Grüße
HotelTango56

bei Antwort benachrichtigen