2009-07-29 12 views
3

Gibt es eine Möglichkeit, Befehle an ein anderes Befehlszeilenprogramm zu senden? Verwendung Syntax wie program.exe something_to_doBefehle an andere Befehlszeilenprogramme senden

das Programm ausführt, so etwas wie dieses

weil ich eine spezielle Kommandozeilen-Programm haben, aber ich kann keine Befehle an sie senden: (‚hier Syntax‘ ist, wo ich eingeben möchten Text und geben sie auch zu starten)

TheWhateverCommandLineProgram 
Version 1.1 
Give an option: "here syntax" 

das Programm im Code sieht etwa so aus:

echo TheWhateverCommandLineProgram 
echo Version 1.1 
Set opt= 
set /p opt=Give an option: 
if %opt%==command1 goto com1 
if %opt%==command2 goto com2 
... 

Nun, ich denke, so verursachen sie war nicht mir w ho machte es (btw: natürlich heißt es nicht TheWhateverCommandLineProgram)

+1

Können Sie ein wenig genauer über das Problem sein. Sprechen Sie ein wenig darüber, was Ihr "spezielles Befehlszeilenprogramm" ist und was Sie tun möchten. Möchten Sie Befehle an ein bereits laufendes Programm senden oder es nur mit bestimmten Optionen starten? –

Antwort

0

In welcher Form nimmt das andere Programm Eingang? Von der Eingabeaufforderung?

Wenn letzteres, dann empfehle ich Autohotkey: http://www.autohotkey.com/

Sie Autohotkey als Brücke nutzen kann, und es wird den Befehl als Tastenanschläge an das Fenster der anderen Batch-Datei senden.

Sie können in ihrem Forum um Hilfe bitten. Sie sind sehr hilfreich.

+0

aber es hat keine Befehlszeilenversion :(Ich möchte nicht, dass der Benutzer diese Befehle in eingeben muss: s –

+0

Der Benutzer muss die Befehle nicht eingeben. Autohotkey wird die Eingabe vornehmen. Lesen Sie sein Lernprogramm. –

+0

In Insbesondere brauchen Sie den Send-Befehl: http://www.autohotkey.com/docs/commands/Send.htm –

1

Ich bin nicht 100% sicher, dass ich verstehe, wonach Sie suchen. Hier zwei Möglichkeiten:

  1. Sie haben zwei Fenster, die jeweils ein Batch-Programm ausgeführt wird. Nehmen wir an, sie heißen myscript1.bat und myscript2.bat. Sie wollen von myscript1.bat eine Reihe von Befehlen zu senden, indem myscript2.bat

  2. Sie haben eine einzige Batch-Skript myscript.bat, die ein einzelnes Programm mit dem Namen program.exe ausführt namens ausgeführt werden. Sie möchten program.exe einige Befehle ausführen oder etwas tun.

Sind beide von denen, was Sie suchen? Hier einige Ideen:

  1. Make myscript1.bat eine dritte Datei erstellen, mycommands.bat. Sobald myscript2.bat die Datei mycommands.bat existiert, wird sie ausgeführt und gelöscht. (Wow. Lame.)

  2. Verwenden Sie den Windows Scripting Host-Befehl (er ist in Windows seit Win2K integriert) oder Powershell (normalerweise auf den meisten Computern heutzutage, wenn sie aktualisiert wurden). Beide können Tastenanschläge an ein anderes Programm senden. Mit diesen Tastenanschlägen können Sie das andere Programm steuern.

+0

Ich bin auf der Suche nach Nummer 2;) –

+0

Wie kann ich es in Windows Scripting Host Befehl tun? –

+1

Ich denke, der Name der Funktion ist "SendKeys", aber ich kann mich nicht erinnern, welches Objekt Sie benötigen. Googlen für "sendkeys" bringt Sie zu http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx - siehe die Beispiele am Ende dieser Seite. – scraimer

3

Wenn Sie nur Programm Tastatureingabe auf eine Kommandozeile geben möchten, können Sie einfach verwenden echo und Rohr es:

echo some text | program.exe 

Wenn Sie mehr Zeilen benötigen, dann schreiben sie in eine Datei und Eingabe verwenden Umleitung:

echo one line > file 
echo second line >> file 
program.exe < file 
Verwandte Themen