Eingabeaufforderungs-Handle zum Ausführen von Befehlen an einer bestimmten Eingabeaufforderung

824
tryingToLearn

Ich habe ein Dienstprogramm abc.exe, das eine spezielle Eingabeaufforderung startet . Mit " speziell" meine ich, dass bestimmte Umgebungsvariablen an dieser Eingabeaufforderung festgelegt werden. Als nächstes muss ich eine Reihe von Befehlen in diesem speziellen Befehlsfenster ausführen. Ich habe alle diese Befehle in einer Batchdatei zusammengefasst und diese Bat-Datei ausgeführt. Dies sind jedoch immer noch zwei Schritte.

  1. Spezielle Eingabeaufforderung über abc.exe starten (kann über die Befehlszeile ausgeführt werden)
  2. Führen Sie die Befehlsdatei .bat aus

Ich möchte diese beiden Schritte in einer einzigen Stapeldatei kombinieren, sodass die Befehle befehl oder die in dieser Datei enthaltenen Befehle nur an einer speziellen Eingabeaufforderung ausgeführt werden. Ist dies möglich, indem Befehle an einer bestimmten Eingabeaufforderung irgendwie eingeschränkt / geleitet werden?

Jetzt habe ich keinen Code für abc.exe, also kann ich nur die spezielle Eingabeaufforderung über sie starten.

0
Wenn dieses `abc.exe`-Tool über keine Befehlszeilenoption verfügt (oder einen Schlüssel in einer Umgebung oder einer INI-Datei), kann eine Batchdatei zur Ausführung übergeben werden, und die Eingabe von std wird nicht akzeptiert. Bei der Eingabe kann ich nur einen Batch oder ein Skript erstellen, mit dem das Tool gestartet wird, auf eine spezielle Konsole wartet (oder durch ein Capture erkannt wird) und dann die Batchdatei mit `sendkeys 'an dieses Konsolenfenster char-by-char sendet `. Akina vor 5 Jahren 3
@Akina du hast recht, ich suche nach dem Weg, das Konsolenfenster zu "erfassen". Hast du eine Idee, wie das geht? tryingToLearn vor 5 Jahren 3

1 Antwort auf die Frage

3
Akina

VBS-Skriptentwurfsvorlage (als .VBS-Datei speichern).

Set WshShell = WScript.CreateObject("WScript.Shell") ' Create Shell object WshShell.Run "abc.exe", 9 ' Execute application WScript.Sleep 500 ' Wait 0.5s for its start WshShell.AppActivate "SpecialConsole" ' Set focus to console window  WshShell.SendKeys "MyScript.bat" ' Type batch file name WshShell.SendKeys "" ' Press Enter key 

Bearbeiten Sie nach Bedarf.