[Windows] Come posso echo e inviare l'output della console a un file in uno script bat?


Answers

Basta usare la versione Windows del comando tee UNIX (trovato da http://unxutils.sourceforge.net ) in questo modo:

mycommand > tee outpu_file.txt

Se è necessario anche l'output STDERR, utilizzare quanto segue.
Il 2>&1 combina l'output STDERR in STDOUT (il flusso principale).

mycommand 2>&1 | tee output_file.txt
Question

Ho uno script batch che esegue un'attività e invia l'output a un file di testo. C'è un modo per avere l'output mostrato anche sulla finestra della console?

Per esempio:

c:\Windows>dir > windows-dir.txt

C'è un modo per visualizzare l'output di dir nella finestra della console e inserirlo nel file di testo?







command > file >&1



La soluzione fornita da "Tomas R" funziona perfettamente per la domanda dell'OP e è nativamente disponibile.

Prova: chkdsk c:> output.txt | digita output.txt

L'output di questo comando implica una percentuale di completamento che viene inviata in serie al file, quindi sembrerà un po 'disordinata (cioè il testo verrà aggiunto mentre procede). Questo non succede ai bit che vengono emessi in STDOUT (lo schermo). È come sarebbe se si eseguisse lo stesso comando senza reindirizzamento.







Links