Come si supera l'errore standard in un file in dos (file batch)?
-
28-10-2019 - |
Domanda
Come si supera l'errore standard in un file in un file batch DOS? Piping usando >>
Solo i tubi l'output standard e l'errore standard vanno ancora alla console.
Dettagli del mio problema:
Sto eseguendo Winrar tramite la riga di comando, in un backup giornaliero automatizzato. E il seguente esempio di output di Winrar, ma non l'output di errori che è quello che voglio di più, winraroutput.txt
:
RAR.exe a -esh -r "E:\backup.rar" "D:\*.*" >> winraroutput.txt
Il problema è che a volte i file sono in uso e quando lo sono voglio sapere che sono stati persi nell'archivio e registrarlo in a .txt
file accanto a ciascuno .rar
File nel caso in cui dovessimo tornare indietro. I file mancanti sono facilmente sostituiti dalla reinstallazione di programmi, quindi non è un grosso problema per sostituirli, purché sappiamo che mancano. Quindi sono solo informazioni che sarebbero fantastiche da sapere, non necessarie, al momento del bisogno.
Come si supera solo l'output di errori standard per .txt
File e, se possibile ma non necessario, lasciare l'output regolare alla console?
Punti bonus:
Punti bonus se puoi dirmi come eliminare il file se è vuoto (nessun errore)! Chiesto qui: Come posso rilevare (ed eliminare) un file se è vuoto utilizzando un file batch di Windows?.
Soluzione
Prova questo:
command.exe 2>file.txt
O se preferisci non vedere errori, invialo a NUL:
command.exe 2>nul
Questo dovrebbe lasciare std :: cout sulla console.