Przekieruj dane wyjściowe z wiersza poleceń systemu Windows do pliku tekstowego

Jednym z najbardziej użytecznych sposobów rejestrowania i rozwiązywania problemów z zachowaniem poleceń lub zadań wsadowych uruchamianych w systemie Windows(Windows) jest przekierowanie danych wyjściowych do pliku.

Istnieje jednak kilka różnych sposobów przekierowania zapisów wiersza poleceń do pliku. Wybrana opcja zależy od tego, jak chcesz wyświetlić dane wyjściowe polecenia.

Jak działa wyświetlanie wiersza polecenia systemu Windows(How Windows Command Prompt Output Works)

Po wpisaniu polecenia w konsoli systemu Windows ( (Windows)wiersz polecenia(command prompt) ) dane wyjściowe tego polecenia trafiają do dwóch oddzielnych strumieni.

  • STDOUT : Standard Out to miejsce, w którym idą wszystkie standardowe odpowiedzi z poleceń. Na przykład standardową odpowiedzią na polecenie DIR jest lista plików w katalogu.
  • STDERR : Błąd standardowy(Standard Error) to miejsce, w którym pojawiają się wszelkie komunikaty o błędach, jeśli wystąpi problem z poleceniem. Na przykład, jeśli w katalogu nie ma żadnych plików, polecenie DIR wygeneruje(DIR) „ Nie znaleziono pliku(File) ” do strumienia błędów standardowych .(Standard Error)

Możesz przekierować dane wyjściowe do pliku w systemie Windows(Windows) dla obu tych strumieni wyjściowych.

Przekieruj standardowe wyjście zapisu do nowego pliku(Redirect Standard Output Write to New File)

Istnieją dwa sposoby przekierowania standardowego wyjścia polecenia do pliku. Pierwszym z nich jest wysyłanie danych wyjściowych polecenia zapisu do nowego pliku za każdym razem, gdy uruchamiasz polecenie.

Aby to zrobić, otwórz wiersz polecenia i wpisz:

dir test.exe > myoutput.txt

Znak > mówi konsoli, aby wyprowadzała STDOUT do pliku o podanej nazwie.

Po uruchomieniu tego polecenia(run this command) zauważysz, że w oknie poleceń nie ma żadnej odpowiedzi, z wyjątkiem błędu, że plik nie istnieje.

Dzieje się tak, ponieważ standardowe wyjście polecenia zostało przekierowane do pliku o nazwie myoutput.txt. Plik znajduje się teraz w tym samym katalogu, w którym uruchomiono polecenie. Standardowe wyjście błędu nadal wyświetla się tak, jak zwykle.

Uwaga(Note) : należy uważać, aby zmienić aktywny katalog(change the active directory) wiersza polecenia przed uruchomieniem polecenia. W ten sposób będziesz wiedział, gdzie przechowywane są pliki wyjściowe.

Możesz wyświetlić standardowe wyjście, które trafiło do pliku, wpisując „myoutput.txt” w oknie poleceń. Spowoduje to otwarcie pliku tekstowego w domyślnej przeglądarce plików tekstowych. Dla większości ludzi jest to zwykle Notepad.exe .

Przy następnym uruchomieniu tego samego polecenia poprzedni plik wyjściowy zostanie usunięty. Nowy plik wyjściowy zostanie odtworzony z danymi wyjściowymi najnowszego polecenia.

Przekieruj standardowe wyjście(Standard Output) zapisuje do tego samego pliku(Same File)

Co zrobić, jeśli nie chcesz nadpisywać tego samego pliku? Inną opcją jest użycie >> zamiast > do przekierowania do pliku wyjściowego. W przypadku tego przykładu wpiszesz:

dir test.exe >> myoutput.txt

Zobaczysz te same dane wyjściowe (tylko błąd).

Ale w tym przypadku zamiast nadpisywania pliku wyjściowego to polecenie dołącza nowe dane wyjściowe do istniejącego pliku wyjściowego.

Za każdym razem, gdy uruchamiasz polecenie i dołączasz dane wyjściowe do pliku, nowe standardowe wyjście zapisuje na końcu istniejącego pliku.

Przekieruj błąd standardowy do pliku(Redirect Standard Error To a File)

W ten sam sposób możesz przekierować standardowe wyjście zapisów do pliku, możesz również wyprowadzić standardowy strumień błędów do pliku.

Aby to zrobić, musisz dodać 2> na końcu polecenia, a następnie plik błędu wyjściowego, który chcesz utworzyć.

W tym przykładzie wpiszesz polecenie: 

dir test.exe > myoutput.txt 2> output.err

Powoduje to wysłanie standardowego strumienia wyjściowego do myoutput.txt i standardowego strumienia błędów do output.err. W rezultacie w oknie konsoli nie jest wyświetlany żaden strumień wyjściowy.

Możesz jednak zobaczyć komunikaty o błędach, wpisując output.err . Spowoduje to otwarcie pliku w domyślnej przeglądarce plików tekstowych.

Jak widać, wszelkie komunikaty o błędach z polecenia są wyprowadzane do pliku błędów. Podobnie(Just) jak w przypadku standardowego wyjścia, możesz zamiast tego użyć >> , aby dołączyć błąd do błędów z wcześniej uruchomionych poleceń.

Przekieruj wszystkie wyjściowe zapisy do tego samego pliku(Redirect All Output Writes to a Same File)

Wszystkie powyższe podejścia powodują powstanie wielu plików. Jeden plik jest dla standardowego strumienia wyjściowego, a drugi dla standardowego strumienia błędów.

Jeśli chcesz dołączyć oba te wyjścia do tego samego pliku, możesz to zrobić. Aby to zrobić, wystarczy przekierować wszystkie dane wyjściowe do tego samego pliku za pomocą następującego polecenia.

dir test.exe 1> myoutput.txt 2>&1

Oto jak działa to polecenie:

  • Standardowe wyjście kierowane jest do pliku wyjściowego identyfikowanego przez wyjście numer 1.
  • Wyjście błędu standardowego oznaczone numerem 2 jest przekierowywane do pliku wyjściowego oznaczonego numerem 1.

Spowoduje to dołączenie wyjścia błędu na końcu standardowego wyjścia.

Jest to przydatny sposób, aby zobaczyć wszystkie dane wyjściowe dla dowolnego polecenia w jednym pliku. 

Wyciszanie standardowych lub błędnych strumieni wyjściowych(Silencing Standard or Error Output Streams)

Możesz również wyłączyć standardowe wyjście(Standard Output) lub błąd standardowy(Standard Error) , przekierowując dane wyjściowe do wartości NUL zamiast do pliku.

Korzystając z powyższego przykładu, jeśli chcesz tylko standardowego wyjścia(Standard Output) i żadnego standardowego błędu(Standard Error) , możesz użyć następującego polecenia:

dir test.exe 1> myoutput.txt 2>nul

Spowoduje to powstanie tego samego pliku wyjściowego, co w pierwszym przykładzie powyżej, w którym przekierowano tylko standardowe wyjście(Standard Output) , ale z tym poleceniem błąd nie pojawi się w konsoli. Nie utworzy też pliku dziennika błędów.

Jest to przydatne, jeśli nie przejmujesz się żadnymi błędami i nie chcesz, aby stały się uciążliwe.

Możesz wykonać dowolne z tych samych poleceń wyjściowych powyżej z wnętrza pliku BAT,(inside a BAT file) a dane wyjściowe z tej linii trafią do określonego pliku wyjściowego. Jest to przydatny sposób sprawdzenia, czy jakiekolwiek polecenia w pliku BAT zawierały błędy podczas próby uruchomienia.



About the author

inżynier audiofilski i specjalista ds. produktów audio z ponad 10-letnim doświadczeniem. Specjalizuję się w tworzeniu wysokiej jakości głośników muzycznych i słuchawek od początku do końca. Jestem ekspertem w rozwiązywaniu problemów z dźwiękiem oraz projektowaniu nowych głośników i systemów słuchawkowych. Moje doświadczenie wykracza poza samo tworzenie dobrych produktów; Mam również pasję pomagania innym w byciu jak najlepszymi, czy to poprzez edukację, czy pracę społeczną.



Related posts