2013-09-24 16 views
7

Ho un .exe che richiede 3 interi come input. Per esempio:come passare l'input a .exe nel file batch?

myCode.exe < input.txt 

In input.txt:

2 
3 
8 

Ora voglio mettere il comando in un file batch. come posso scrivere il file batch? (Qui voglio passare 3 numeri interi fissi nel file batch)

GRAZIE!

+0

sto supponendo che si sta cercando di fare questo senza un file esterno con ingresso? –

+0

sì. nessun file esterno. È necessario fissare 3 numeri dopo che l'utente ha impostato per la prima volta il file batch – Helen

risposta

1

Ecco un batch one-liner che creerà il file per voi e fornirlo come input per il myCode.exe:

echo 2 3 8 > output & myCode.exe output 

caso contrario, sarà probabilmente necessario modificare il programma per leggere gli argomenti direttamente dalla riga di comando.

È possibile reindirizzare il programma standard di input/output/flussi di errore verso o da un file, ma penso che non sia possibile reindirizzare un contenuto della riga di comando a un flusso di input standard. Date un'occhiata at this page for details on batch redirection.

+0

Ora il codice è in C# e utilizza Console.readLine() per ottenere input. Potrei dover aggiungere una nuova riga tra 2 e 3. – Helen

+0

Dai un'occhiata [qui] (http://stackoverflow.com/questions/132799/how-can-you-echo-a-newline-in-batch-files) per incorporare costanti newline in un file batch. Probabilmente avrai bisogno di tre istruzioni echo su una linea. –

+0

echo 9 && echo. && echo 19 && echo. $$ echo 2> output | output myCode.exe proverò se questo funziona. Grazie Vladimir! – Helen

12

Questo può anche funzionare:

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

+1, ma in base al modo in cui la domanda è formulata, l'OP potrebbe richiedere il più semplice 'echo 1 2 3 | mycode.exe' – dbenham

+0

@dbenham Mi sono interrogato su questo e ho appena modificato la domanda - erano effettivamente su righe separate. – foxidrive

+0

Ah, buona presa – dbenham

4

provare questo:

run.bat:

myCode.exe %1 %2 %3

chiamata esempio:

run.bat 111 222 333

e con il file:

run.bat < input.txt

Problemi correlati