Preusmjerite izlaz iz naredbenog retka sustava Windows u tekstualnu datoteku

Jedan od najkorisnijih načina za prijavu i rješavanje problema s ponašanjem naredbi ili skupnih poslova koje izvodite u sustavu Windows(Windows) je preusmjeravanje izlaza u datoteku.

Međutim, postoji nekoliko različitih načina na koje možete preusmjeriti zapise naredbenog retka u datoteku. Opcija koju odaberete ovisi o tome kako želite vidjeti izlaz naredbe.

Kako radi izlaz naredbenog retka sustava Windows(How Windows Command Prompt Output Works)

Kada upišete naredbu u Windows konzolu ( naredbeni redak(command prompt) ), izlaz te naredbe ide u dva odvojena toka.

  • STDOUT : Standardni izlaz(Out) je mjesto gdje idu svi standardni odgovori iz naredbi. Na primjer, standardni odgovor za naredbu DIR je popis datoteka unutar direktorija.
  • STDERR : Standardna pogreška(Standard Error) je mjesto gdje idu sve poruke o pogrešci ako postoji problem s naredbom. Na primjer, ako u direktoriju nema datoteka, naredba DIR će ispisati " Datoteka(File) nije pronađena" u tok Standardne pogreške .(Standard Error)

Možete preusmjeriti izlaz na datoteku u sustavu Windows(Windows) za oba ova izlazna toka.

Preusmjeravanje standardnog izlaza za pisanje u novu datoteku(Redirect Standard Output Write to New File)

Postoje dva načina na koje možete preusmjeriti standardni izlaz naredbe u datoteku. Prvi je slanje izlaza naredbe za pisanje u novu datoteku svaki put kada pokrenete naredbu.

Da biste to učinili, otvorite naredbeni redak i upišite:

dir test.exe > myoutput.txt

Znak > govori konzoli da ispusti STDOUT(STDOUT) u datoteku s imenom koje ste dali.

Kada pokrenete ovu naredbu(run this command) , primijetit ćete da u naredbenom prozoru nema odgovora osim pogreške da datoteka ne postoji.

To je zato što je standardni izlaz za naredbu preusmjeren na datoteku pod nazivom myoutput.txt. Datoteka sada postoji u istom direktoriju u kojem ste pokrenuli naredbu. Standardni izlaz pogreške i dalje se prikazuje kao i obično.

Napomena(Note) : Pazite da promijenite aktivni direktorij(change the active directory) za naredbeni redak prije pokretanja naredbe. Na ovaj način ćete znati gdje su pohranjene izlazne datoteke.

Možete vidjeti standardni izlaz koji je otišao u datoteku upisivanjem “myoutput.txt” u naredbeni prozor. Ovo će otvoriti tekstualnu datoteku u vašem zadanom pregledniku tekstualnih datoteka. Za većinu ljudi to je obično Notepad.exe .

Sljedeći put kada pokrenete istu naredbu, prethodna izlazna datoteka bit će izbrisana. Nova izlazna datoteka bit će ponovno stvorena s izlazom posljednje naredbe.

Preusmjeravanje standardnog izlaza(Standard Output) upisuje u istu datoteku(Same File)

Što ako ne želite prebrisati istu datoteku? Druga opcija je korištenje >> umjesto > za preusmjeravanje na izlaznu datoteku. U slučaju ovog primjera, upisali biste:

dir test.exe >> myoutput.txt

Vidjet ćete isti izlaz (samo pogreška).

Ali u ovom slučaju, umjesto da prepiše izlaznu datoteku, ova naredba dodaje novi izlaz postojećoj izlaznoj datoteci.

Svaki put kada pokrenete naredbu i dodate izlaz u datoteku, ona će napisati novi standardni izlaz na kraj postojeće datoteke.

Preusmjeravanje standardne pogreške u datoteku(Redirect Standard Error To a File)

Na isti način na koji možete preusmjeriti standardne izlazne zapise u datoteku, također možete izvesti standardni tok pogrešaka u datoteku.

Da biste to učinili, morat ćete dodati 2> na kraj naredbe, nakon čega slijedi datoteka izlazne pogreške koju želite stvoriti.

U ovom primjeru upisat ćete naredbu: 

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

Ovo šalje standardni izlazni tok u myoutput.txt, a standardni tok grešaka u output.err. Rezultat je da se nikakav izlazni tok uopće ne prikazuje u prozoru konzole.

Međutim, poruke o pogrešci možete vidjeti tako da upišete output.err . Ovo će otvoriti datoteku u vašem zadanom pregledniku tekstualnih datoteka.

Kao što možete vidjeti, sve poruke o pogrešci iz naredbe izlaze u datoteku pogreške. Baš(Just) kao i kod standardnog izlaza, umjesto toga možete koristiti >> za dodavanje pogreške pogreškama iz prethodno pokrenutih naredbi.

Preusmjerite sve izlazne zapise u istu datoteku(Redirect All Output Writes to a Same File)

Svi gore navedeni pristupi rezultiraju više datoteka. Jedna datoteka je za standardni izlazni tok, a druga za standardni tok grešaka.

Ako želite uključiti oba ova izlaza u istu datoteku, možete i to učiniti. Da biste to učinili, trebate samo preusmjeriti sav izlaz na istu datoteku pomoću sljedeće naredbe.

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

Evo kako ova naredba funkcionira:

  • Standardni izlaz je usmjeren na izlaznu datoteku identificiranu izlaznim brojem 1.
  • Standardni izlaz greške identificiran brojem 2 preusmjerava se na izlaznu datoteku označenu brojem 1.

Ovo će dodati izlaz greške na kraj standardnog izlaza.

Ovo je koristan način da vidite sav izlaz za bilo koju naredbu u jednoj datoteci. 

Utišavanje standardnih ili izlaznih tokova pogrešaka(Silencing Standard or Error Output Streams)

Također možete isključiti standardni izlaz(Standard Output) ili standardnu ​​grešku(Standard Error) preusmjeravanjem izlaza na NUL umjesto u datoteku.

Koristeći gornji primjer, ako želite samo standardni izlaz(Standard Output) i bez standardne pogreške(Standard Error) uopće, možete koristiti sljedeću naredbu:

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

To će rezultirati istom izlaznom datotekom kao u prvom primjeru iznad gdje ste samo preusmjerili standardni izlaz(Standard Output) , ali s ovom naredbom pogreška se neće odjeknuti unutar konzole. Neće stvoriti ni datoteku dnevnika grešaka.

Ovo je korisno ako vas ne zanimaju pogreške i ne želite da vam one budu smetnja.

Možete izvesti bilo koju od istih izlaznih naredbi iznad unutar BAT datoteke(inside a BAT file) i izlaz iz te linije će ići u izlaznu datoteku koju odredite. Ovo je koristan način da vidite jesu li naredbe unutar BAT datoteke imale pogreške kada su se pokušale pokrenuti.



About the author

U poslu je sve u stvaranju vrijednosti za vaše klijente i kupce. Usredotočen sam na pružanje uputa korak po korak koje pomažu mojim čitateljima da izvuku najviše iz svog hardvera i softvera, koristeći Microsoft Office. Moje vještine uključuju instalaciju tipkovnice i upravljačkih programa, kao i podršku za Microsoft Office. Uz svoje dugogodišnje iskustvo u industriji, mogu vam pomoći da pokrijete sve hardverske ili softverske potrebe koje možda imate.



Related posts