E' necessario sapere che ci sono 2 livelli di output in maniera analoga ai sistemi Linux/Unix, il primo livello è lo STANDARD OUTPUT mentre il secondo livello è lo STANDARD ERROR.
Per cui le applicazioni ridirezionano gli output su questi 2 livelli a seconda delle esigenze.
Come è possibile salvare gli output dell'esecuzione di un batch?
Per poter eseguire delle prove creare con blocco note un nuovo di nome "test.bat" e copiare al suo interno i seguenti comandi :
@ECHO OFF
ECHO This text goes to Standard Output
ECHO This text goes to Standard Error 1>&2
Eseguendo il file "test.bat" da riga di comando (Start->Esegui..->cmd) otterremo il seguente risultato :
C:\>test.bat
This text goes to Standard Output
This text goes to Standard Error
REDIRECT DEGLI STANDARD OUTPUT SU FILE DI LOG
Eseguendo il comando "test.bat > logFile.log" otterremo il seguente risultato :
C:\>test.bat > logFile.log
This text goes to Standard Error
nel file di log logFile.log il contenuto sarà il seguente :
This text goes to Standard Output
REDIRECT DEGLI STANDARD ERORR SU FILE DI LOG
Eseguendo il comando "test.bat 2> logFile.log" otterremo il seguente risultato :
C:\>test.bat 2> logFile.log
This text goes to Standard Output
nel file di log logFile.log il contenuto sarà il seguente :
This text goes to Standard Error
REDIRECT DI TUTTI GLI OUTPUT SU UN UNICO FILE DI LOG
Eseguendo il comando "test.bat > logFile.log 2>&1" otterremo il seguente risultato :
C:\>test.bat > logFile.log 2>&1
nel file di log logFile.log il contenuto sarà il seguente :
This text goes to Standard Output
This text goes to Standard Error
N.B : è possibile loggare separatamente errori e output su 2 files differenti con il comando "test.bat > logFile.log 2> logFile.2.log"
E' possibile anche evitare che errori o output non siano visualizzati nè loggati. Nel seguente esempio verranno visualizzati solo gli errori tramite il comando "test.bat > NUL"
C:\>test.bat > NUL
This text goes to Standard Error
Nessun commento:
Posta un commento