Περισσότερα
Ανακατεύθυνση των stdout και stderr των Windows cmd σε ένα ενιαίο αρχείο
Προσπαθώ να ανακατευθύνω όλη την έξοδο (stdout + stderr) μιας εντολής DOS σε ένα μόνο αρχείο:
C:\>dir 1> a.txt 2> a.txt
The process cannot access the file because it is being used by another process.
Είναι δυνατόν ή θα πρέπει να ανακατευθύνω σε δύο ξεχωριστά αρχεία;
654
3
Θέλετε:
Η σύνταξη
2>&1
θα ανακατευθύνει το2
(stderr) στο1
(stdout). Μπορείτε επίσης να αποκρύψετε μηνύματα ανακατευθύνοντας σεNUL
, περισσότερες εξηγήσεις και παραδείγματα στο MSDN.Η απάντηση του Anders Lindahl'είναι σωστή, αλλά θα πρέπει να σημειωθεί ότι αν ανακατευθύνετε το stdout σε ένα αρχείο και θέλετε να ανακατευθύνετε και το stderr, τότε ΠΡΕΠΕΙ να βεβαιωθείτε ότι το
2>&1
καθορίζεται ΜΕΤΑ την ανακατεύθυνση1>
, διαφορετικά δεν θα λειτουργήσει.Μόλις έκοψα την απάντηση όπως την έστειλε ο @Anders, αλλά...
Από τη βοήθεια των Windows, έψαξα για ανακατεύθυνση (URL ms-its:C:\WINDOWS\Help\ntcmds.chm::/redirection.htm).
Ίσως να θέλετε να διαβάσετε και για τα >> και | (pipe).