2011-01-05 5 views
8

Vorrei impostare l'output standard di uno script batch per andare a un file. Mi piacerebbe farlo all'interno della sceneggiatura, se possibile.È possibile reindirizzare l'output di un file batch all'interno dello script?

Nota: Io Non voglio fare questo: foo.bat > StdOut.txt

mi piacerebbe fare qualcosa all'interno dello script per reindirizzare l'output in un file
Ad esempio:

foo. bat

:: Redirect standard output to StdOut.txt 
:: Insert batch code to do what I want here. 

risposta

14

Un modo per farlo è il seguente. Utilizzare il comando call per eseguire un'etichetta nello script. Modifica Ho realizzato che la prima versione che ho pubblicato non sembra funzionare in un prompt di cmd.exe (stavo usando TCC). Quanto segue sembra funzionare in entrambi i processori di comando:

@echo off 
call :testitout > t.tmp 
goto:eof 

:testitout 
echo Hi There 
echo Goodbye 
+0

Grazie, questo era esattamente quello che stavo cercando – SwDevMan81

+1

@ SwDevMan81, La ragione per cui ho guardato è perché ho voluto fare questo in passato e non sapeva come. Ma la tua domanda mi ha spinto a ricordare che il comando call poteva chiamare un'etichetta nel file batch, il che mi ha fatto chiedere se questo trucco avrebbe funzionato. Quindi l'ho appena imparato. –

+0

Sì, sicuramente non ci avrei pensato. Sembra che entrambi abbiamo imparato qualcosa di nuovo oggi :) – SwDevMan81

1

> è lo standard, in modo da essere più o meno bloccato con quella; tuttavia, è possibile spostarlo all'interno del file batch:

foo.bat:

@echo off 
@echo Start File > StdOut.txt 
@dir >> StdOut.txt 
@echo End File >> StdOut.txt 
Problemi correlati