2013-09-24 2 views
7

Ich habe eine .exe, die 3 ganze Zahlen als Eingabe benötigt. Zum Beispiel:Wie übergeben Sie die Eingabe an .exe in der Batch-Datei?

myCode.exe < input.txt 

In input.txt:

2 
3 
8 

Jetzt will ich den Befehl in einer Batch-Datei setzen. Wie kann ich die Batch-Datei schreiben? (Hier möchte ich 3 feste ganze Zahlen in der Batch-Datei übergeben)

DANKE!

+0

Ich gehe davon aus Sie versuchen, dies mit Eingang ohne eine externe Datei zu tun? –

+0

ja. keine externe Datei Diese 3 Zahlen sollen behoben werden, nachdem der Benutzer zuerst die Batch-Datei eingerichtet hat. – Helen

Antwort

1

Hier ist ein Batch-Einzeiler, die die Datei für Sie erstellen und als eine Eingabe in den myCode.exe liefern:

echo 2 3 8 > output & myCode.exe output 

Andernfalls werden Sie wahrscheinlich Ihr Programm ändern müssen, die Argumente lesen direkt von der Befehlszeile.

Es ist möglich, die Programm-Standardeingabe/-ausgabe/Fehlerströme zu oder von einer Datei umzuleiten, aber ich denke, es gibt keine Möglichkeit, den Inhalt einer Befehlszeile in einen Standard-Eingabestrom umzuleiten. Werfen Sie einen Blick at this page for details on batch redirection.

+0

Jetzt ist der Code in C# und verwendet Console.readLine(), um eine Eingabe zu erhalten. Ich muss möglicherweise Newline zwischen 2 und 3 hinzufügen. – Helen

+0

Werfen Sie einen Blick [hier] (http://stackoverflow.com/questions/132799/how-can-yo-echo-a-newline-in-batch-files) für Einbetten einer Newline-Konstanten in eine Batch-Datei. Sie werden wahrscheinlich nur drei Echo-Anweisungen in einer Zeile benötigen. –

+0

Echo 9 && Echo. && echo 19 && echo. $$ Echo 2> Ausgabe | myCode.exe Ausgabe werde ich versuchen, wenn dies funktioniert. Danke Vladimir! – Helen

12

Dies kann auch arbeiten:

(
echo 2 
echo 3 
echo 8 
) | mycode.exe 
+0

+1, aber basierend auf der Art und Weise Frage formuliert wird, kann das OP brauchen die einfachere 'echo 1 2 3 | mycode.exe' – dbenham

+0

@dbenham Ich fragte mich darüber und nur die Frage bearbeitet - sie waren in der Tat in getrennten Zeilen. – foxidrive

+0

Ahh, guter Fang – dbenham

4

try this:

run.bat:

myCode.exe %1 %2 %3

Aufruf Beispiel:

run.bat 111 222 333

und mit Datei:

run.bat < input.txt