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?.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top