Script batch - Input / output

Sono disponibili tre "file" universali per l'input da tastiera, la stampa di testo sullo schermo e gli errori di stampa sullo schermo. Il file "Standard In", noto comestdin, contiene l'input per il programma / script. Il file "Standard Out", noto comestdout, viene utilizzato per scrivere l'output per la visualizzazione sullo schermo. Infine, il file "Standard Err", noto comestderr, contiene eventuali messaggi di errore da visualizzare sullo schermo.

A ciascuno di questi tre file standard, altrimenti noti come flussi standard, si fa riferimento utilizzando i numeri 0, 1 e 2. Stdin è il file 0, stdout è il file 1 e stderr è il file 2.

Reindirizzamento dell'output (Stdout e Stderr)

Una pratica comune nei file batch è l'invio dell'output di un programma a un file di registro. L'operatore> invia, o reindirizza, stdout o stderr a un altro file. L'esempio seguente mostra come eseguire questa operazione.

Dir C:\ > list.txt

Nell'esempio sopra, il stdout del comando Dir C: \ viene reindirizzato al file list.txt.

Se aggiungi il numero 2 al filtro di reindirizzamento, reindirizzerà il file stderr al file lists.txt.

Dir C:\ 2> list.txt

Si possono anche combinare i file stdout e stderrflussi utilizzando il numero di file e il prefisso "&". Di seguito è riportato un esempio.

DIR C:\ > lists.txt 2>&1

Soppressione dell'output del programma

Lo pseudo file NUL viene utilizzato per eliminare qualsiasi output da un programma. L'esempio seguente mostra che l'output del comando DIR viene scartato inviando l'output a NUL.

Dir C:\ > NUL

Stdin

Per lavorare con Stdin, è necessario utilizzare una soluzione alternativa per ottenere ciò. Questo può essere fatto reindirizzando lo stdin del prompt dei comandi, chiamato CON.

L'esempio seguente mostra come reindirizzare l'output a un file chiamato lists.txt. Dopo aver eseguito il comando seguente, il prompt dei comandi prenderà tutto l'input inserito dall'utente fino a quando non ottiene un carattere EOF. Successivamente, invia tutti gli input al file lists.txt.

TYPE CON > lists.txt