Ανακατεύθυνση της εξόδου από τη γραμμή εντολών των Windows σε ένα αρχείο κειμένου
Ένας από τους πιο χρήσιμους τρόπους καταγραφής και αντιμετώπισης προβλημάτων της συμπεριφοράς των εντολών ή των ομαδικών εργασιών που εκτελείτε στα Windows είναι να ανακατευθύνετε την έξοδο σε ένα αρχείο.
Ωστόσο, υπάρχουν μερικοί διαφορετικοί τρόποι με τους οποίους μπορείτε να ανακατευθύνετε τις εγγραφές της γραμμής εντολών σε ένα αρχείο. Η επιλογή που θα επιλέξετε εξαρτάται από το πώς θέλετε να δείτε την έξοδο της εντολής σας.
Πώς λειτουργεί η έξοδος της γραμμής εντολών των Windows(How Windows Command Prompt Output Works)
Όταν πληκτρολογείτε μια εντολή στην κονσόλα των Windows ( γραμμή εντολών(command prompt) ), η έξοδος από αυτήν την εντολή πηγαίνει σε δύο ξεχωριστές ροές.
- STDOUT : Standard Out είναι όπου πηγαίνουν οποιεσδήποτε τυπικές απαντήσεις από εντολές. Για παράδειγμα, η τυπική απόκριση για την εντολή DIR είναι μια λίστα αρχείων μέσα σε έναν κατάλογο.
- STDERR : Το τυπικό σφάλμα(Standard Error) είναι το σημείο όπου πηγαίνουν τυχόν μηνύματα σφάλματος εάν υπάρχει πρόβλημα με την εντολή. Για παράδειγμα, εάν δεν υπάρχουν αρχεία στον κατάλογο, η εντολή DIR θα εξάγει το " File Not Found" στη ροή Standard Error .
Μπορείτε να ανακατευθύνετε την έξοδο σε ένα αρχείο στα Windows και για τις δύο αυτές ροές εξόδου.
Ανακατεύθυνση τυπικής εξόδου εγγραφής σε νέο αρχείο(Redirect Standard Output Write to New File)
Υπάρχουν δύο τρόποι με τους οποίους μπορείτε να ανακατευθύνετε την τυπική έξοδο μιας εντολής σε ένα αρχείο. Το πρώτο είναι να στέλνετε την έξοδο της εντολής εγγραφή σε ένα νέο αρχείο κάθε φορά που εκτελείτε την εντολή.
Για να το κάνετε αυτό, ανοίξτε τη γραμμή εντολών και πληκτρολογήστε:
dir test.exe > myoutput.txt
Ο χαρακτήρας > λέει στην κονσόλα να εξάγει STDOUT στο αρχείο με το όνομα που έχετε δώσει.
Όταν εκτελείτε αυτήν την εντολή(run this command) , θα παρατηρήσετε ότι δεν υπάρχει καμία απόκριση στο παράθυρο εντολών εκτός από το σφάλμα ότι το αρχείο δεν υπάρχει.
Αυτό συμβαίνει επειδή η τυπική έξοδος για την εντολή ανακατευθύνθηκε σε ένα αρχείο που ονομάζεται myoutput.txt. Το αρχείο υπάρχει πλέον στον ίδιο κατάλογο όπου εκτελέσατε την εντολή. Η τυπική έξοδος σφάλματος εξακολουθεί να εμφανίζεται όπως συνήθως.
Σημείωση(Note) : Προσέξτε να αλλάξετε τον ενεργό κατάλογο(change the active directory) για τη γραμμή εντολών πριν εκτελέσετε την εντολή. Με αυτόν τον τρόπο θα γνωρίζετε πού αποθηκεύονται τα αρχεία εξόδου.
Μπορείτε να δείτε την τυπική έξοδο που πήγε στο αρχείο πληκτρολογώντας "myoutput.txt" στο παράθυρο εντολών. Αυτό θα ανοίξει το αρχείο κειμένου στο προεπιλεγμένο πρόγραμμα προβολής αρχείων κειμένου. Για τους περισσότερους ανθρώπους, αυτό είναι συνήθως το Notepad.exe .
Την επόμενη φορά που θα εκτελέσετε την ίδια εντολή, το προηγούμενο αρχείο εξόδου θα διαγραφεί. Ένα νέο αρχείο εξόδου θα δημιουργηθεί εκ νέου με την έξοδο της πιο πρόσφατης εντολής.
Ανακατεύθυνση τυπικής εξόδου(Standard Output) εγγραφής στο ίδιο αρχείο(Same File)
Τι γίνεται αν δεν θέλετε να αντικαταστήσετε το ίδιο αρχείο; Μια άλλη επιλογή είναι να χρησιμοποιήσετε το >> αντί για το > για να ανακατευθύνετε σε ένα αρχείο εξόδου. Στην περίπτωση αυτού του παραδείγματος, θα πληκτρολογήσετε:
dir test.exe >> myoutput.txt
Θα δείτε την ίδια έξοδο (μόνο το σφάλμα).
Αλλά σε αυτήν την περίπτωση, αντί να αντικαταστήσει το αρχείο εξόδου, αυτή η εντολή προσαρτά τη νέα έξοδο στο υπάρχον αρχείο εξόδου.
Κάθε φορά που εκτελείτε μια εντολή και προσθέτετε την έξοδο σε ένα αρχείο, θα γράφει τη νέα τυπική έξοδο στο τέλος του υπάρχοντος αρχείου.
Ανακατεύθυνση τυπικού σφάλματος σε αρχείο(Redirect Standard Error To a File)
Με τον ίδιο τρόπο που μπορείτε να ανακατευθύνετε τις τυπικές εγγραφές εξόδου σε ένα αρχείο, μπορείτε επίσης να εξάγετε την τυπική ροή σφαλμάτων σε ένα αρχείο.
Για να το κάνετε αυτό, θα πρέπει να προσθέσετε το 2> στο τέλος της εντολής, ακολουθούμενο από το αρχείο σφάλματος εξόδου που θέλετε να δημιουργήσετε.
Σε αυτό το παράδειγμα, θα πληκτρολογήσετε την εντολή:
dir test.exe > myoutput.txt 2> output.err
Αυτό στέλνει την τυπική ροή εξόδου στο myoutput.txt και την τυπική ροή σφαλμάτων στο output.err. Το αποτέλεσμα είναι ότι δεν εμφανίζεται καθόλου ροή εξόδου στο παράθυρο της κονσόλας.
Ωστόσο, μπορείτε να δείτε τα μηνύματα σφάλματος πληκτρολογώντας output.err . Αυτό θα ανοίξει το αρχείο στο προεπιλεγμένο πρόγραμμα προβολής αρχείων κειμένου.
Όπως μπορείτε να δείτε, τυχόν μηνύματα σφάλματος από την εντολή εξάγονται στο αρχείο σφάλματος. Όπως(Just) και με την τυπική έξοδο, μπορείτε να χρησιμοποιήσετε το >> για να προσθέσετε το σφάλμα σε σφάλματα από εντολές που εκτελέστηκαν προηγουμένως.
Ανακατεύθυνση όλων των εγγραφών εξόδου σε ένα ίδιο αρχείο(Redirect All Output Writes to a Same File)
Όλες οι παραπάνω προσεγγίσεις καταλήγουν σε πολλαπλά αρχεία. Το ένα αρχείο είναι για την τυπική ροή εξόδου και το άλλο για την τυπική ροή σφαλμάτων.
Εάν θέλετε να συμπεριλάβετε και τις δύο εξόδους στο ίδιο αρχείο, μπορείτε να το κάνετε και αυτό. Για να το κάνετε αυτό, χρειάζεται απλώς να ανακατευθύνετε όλα τα αποτελέσματα στο ίδιο αρχείο χρησιμοποιώντας την ακόλουθη εντολή.
dir test.exe 1> myoutput.txt 2>&1
Δείτε πώς λειτουργεί αυτή η εντολή:
- Η τυπική έξοδος κατευθύνεται στο αρχείο εξόδου που προσδιορίζεται από τον αριθμό εξόδου 1.
- Η τυπική έξοδος σφάλματος που προσδιορίζεται από τον αριθμό 2 ανακατευθύνεται στο αρχείο εξόδου που προσδιορίζεται από τον αριθμό 1.
Αυτό θα προσαρτήσει την έξοδο σφάλματος στο τέλος της τυπικής εξόδου.
Αυτός είναι ένας χρήσιμος τρόπος για να δείτε όλα τα αποτελέσματα για οποιαδήποτε εντολή σε ένα αρχείο.
Σίγαση τυπικών ροών εξόδου ή σφαλμάτων(Silencing Standard or Error Output Streams)
Μπορείτε επίσης να απενεργοποιήσετε είτε την τυπική έξοδο(Standard Output) είτε το τυπικό σφάλμα(Standard Error) ανακατευθύνοντας την έξοδο σε ένα NUL αντί για ένα αρχείο.
Χρησιμοποιώντας το παραπάνω παράδειγμα, εάν θέλετε μόνο Standard Output και καθόλου Standard Error , μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:
dir test.exe 1> myoutput.txt 2>nul
Αυτό θα έχει ως αποτέλεσμα το ίδιο αρχείο εξόδου με το πρώτο παράδειγμα παραπάνω, όπου ανακατευθύνατε μόνο την Τυπική έξοδο(Standard Output) , αλλά με αυτήν την εντολή το σφάλμα δεν θα ηχεί μέσα στην κονσόλα. Δεν θα δημιουργήσει επίσης ένα αρχείο καταγραφής σφαλμάτων.
Αυτό είναι χρήσιμο εάν δεν σας ενδιαφέρουν τυχόν σφάλματα και δεν θέλετε να γίνουν ενοχλητικά.
Μπορείτε να εκτελέσετε οποιαδήποτε από τις ίδιες εντολές εξόδου παραπάνω μέσα από ένα αρχείο BAT(inside a BAT file) και η έξοδος από αυτή τη γραμμή θα μεταβεί στο αρχείο εξόδου που καθορίσατε. Αυτός είναι ένας χρήσιμος τρόπος για να δείτε εάν οποιεσδήποτε εντολές σε ένα αρχείο BAT είχαν σφάλματα όταν προσπάθησαν να εκτελεστούν.
Related posts
Αποθηκεύστε μια λίστα με τις διεργασίες που εκτελούνται σε ένα αρχείο κειμένου στα Windows
Πώς να χρησιμοποιήσετε την εντολή Taskkill στα Windows 10/11
Πώς να αφαιρέσετε κείμενο από εικονίδια στη γραμμή εργασιών των Windows
Αποτρέψτε την πρόσβαση στη γραμμή εντολών στα Windows
Καταργήστε τις ετικέτες κειμένου από τα εικονίδια της επιφάνειας εργασίας στα Windows 7/8/10
Πώς να σκοτώσετε μια διαδικασία χρησιμοποιώντας τη γραμμή εντολών στα Windows 11/10
Ενεργοποιήστε το Microphone, Line-In Audio και Stereo Mix στα Windows
Ενεργοποιήστε τη λειτουργία παιχνιδιού για να εξομαλύνετε την απόδοση στα Windows 10
Πώς να απεγκαταστήσετε το BlueStacks σε Windows και Mac
Πώς να μειώσετε την υψηλή χρήση CPU του Windows Explorer
Πώς να ανοίξετε εφαρμογές του Microsoft Store από τη γραμμή εντολών
Πώς να χρησιμοποιήσετε την εντολή Ping για την αντιμετώπιση προβλημάτων δικτύου
Πώς να αλλάξετε το μέγεθος ενός βίντεο χρησιμοποιώντας τη γραμμή εντολών με το FFmpeg στα Windows 10
Πώς να χρησιμοποιήσετε τις εντολές FINDSTR και Select-String στα Windows 11/10
Πώς να απενεργοποιήσετε το κλειδί των Windows
Εξαγωγή, εκκαθάριση και αύξηση μεγέθους για αρχεία καταγραφής συμβάντων στα Windows
Πώς να εκτυπώσετε μηνύματα κειμένου από το Android
Πώς να μάθετε ποια έκδοση των Windows έχετε εγκαταστήσει
Πώς να μετακινήσετε το προφίλ και το email σας Thunderbird σε έναν νέο υπολογιστή με Windows
Πώς να εμφανίσετε τη γραμμή εντολών στη Διαχείριση εργασιών των Windows 11/10