Presmerujte výstup z príkazového riadka systému Windows do textového súboru

Jedným z najužitočnejších spôsobov zaznamenávania a riešenia problémov so správaním príkazov alebo dávkových úloh, ktoré spúšťate v systéme Windows(Windows) , je presmerovanie výstupu do súboru.

Existuje však niekoľko rôznych spôsobov, ako môžete presmerovať zápisy príkazového riadku do súboru. Voľba, ktorú si vyberiete, závisí od toho, ako chcete zobraziť výstup príkazu.

Ako funguje výstup príkazového riadka systému Windows(How Windows Command Prompt Output Works)

Keď zadáte príkaz do konzoly Windows ( príkazový riadok(command prompt) ), výstup z tohto príkazu prejde do dvoch samostatných prúdov.

  • STDOUT : Štandardný výstup(Out) je miesto, kam smerujú všetky štandardné reakcie z príkazov. Napríklad štandardnou odpoveďou na príkaz DIR je zoznam súborov v adresári.
  • STDERR : Štandardná chyba(Standard Error) je miesto, kde sa objavia chybové hlásenia, ak sa vyskytne problém s príkazom. Napríklad, ak sa v adresári nenachádzajú žiadne súbory, príkaz DIR vypíše „ File Not Found“ do prúdu štandardnej chyby .(Standard Error)

Pre oba tieto výstupné prúdy môžete presmerovať výstup do súboru v systéme Windows .(Windows)

Presmerovať štandardný výstup Zápis do nového súboru(Redirect Standard Output Write to New File)

Existujú dva spôsoby, ako môžete presmerovať štandardný výstup príkazu do súboru. Prvým je odoslanie zápisu výstupu príkazu do nového súboru pri každom spustení príkazu.

Ak to chcete urobiť, otvorte príkazový riadok a zadajte:

dir test.exe > myoutput.txt

Znak > hovorí konzole, aby vypísala STDOUT(STDOUT) do súboru s názvom, ktorý ste zadali.

Keď spustíte tento príkaz(run this command) , všimnete si, že v príkazovom okne nie je žiadna odpoveď okrem chyby, že súbor neexistuje.

Je to preto, že štandardný výstup príkazu bol presmerovaný do súboru s názvom myoutput.txt. Súbor teraz existuje v rovnakom adresári, v ktorom ste spustili príkaz. Štandardný chybový výstup sa stále zobrazuje ako zvyčajne.

Poznámka(Note) : Dávajte pozor, aby ste pred spustením príkazu zmenili aktívny adresár(change the active directory) pre príkazový riadok. Týmto spôsobom budete vedieť, kde sú uložené výstupné súbory.

Štandardný výstup, ktorý prešiel do súboru, môžete zobraziť zadaním „myoutput.txt“ do príkazového okna. Tým sa otvorí textový súbor vo vašom predvolenom prehliadači textových súborov. Pre väčšinu ľudí je to zvyčajne Notepad.exe .

Pri ďalšom spustení rovnakého príkazu sa predchádzajúci výstupný súbor vymaže. Vytvorí sa nový výstupný súbor s najnovším výstupom príkazu.

Presmerovať štandardný výstup(Standard Output) zapisuje do rovnakého súboru(Same File)

Čo ak nechcete prepísať rovnaký súbor? Ďalšou možnosťou je použiť >> namiesto > na presmerovanie na výstupný súbor. V prípade tohto príkladu by ste napísali:

dir test.exe >> myoutput.txt

Uvidíte rovnaký výstup (iba chyba).

Ale v tomto prípade namiesto prepísania výstupného súboru tento príkaz pripojí nový výstup k existujúcemu výstupnému súboru.

Zakaždým, keď spustíte príkaz a pripojíte výstup k súboru, zapíše nový štandardný výstup na koniec existujúceho súboru.

Štandardná chyba presmerovania do súboru(Redirect Standard Error To a File)

Rovnakým spôsobom môžete presmerovať štandardné výstupné zápisy do súboru, môžete tiež výstup štandardného chybového prúdu do súboru.

Ak to chcete urobiť, musíte na koniec príkazu pridať 2> a za ním výstupný chybový súbor, ktorý chcete vytvoriť.

V tomto príklade zadáte príkaz: 

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

Toto odošle štandardný výstupný tok do myoutput.txt a štandardný chybový tok do output.err. Výsledkom je, že v okne konzoly sa nezobrazí žiadny výstupný tok.

Chybové hlásenia si však môžete pozrieť zadaním output.err . Tým sa súbor otvorí vo vašom predvolenom prehliadači textových súborov.

Ako vidíte, všetky chybové hlásenia z príkazu sa vypisujú do chybového súboru. Rovnako(Just) ako pri štandardnom výstupe môžete namiesto toho použiť >> na pripojenie chyby k chybám z predtým spustených príkazov.

Presmerujte všetky výstupné zápisy do rovnakého súboru(Redirect All Output Writes to a Same File)

Všetky vyššie uvedené prístupy vedú k viacerým súborom. Jeden súbor je pre štandardný výstupný tok a druhý je pre štandardný chybový tok.

Ak chcete zahrnúť oba tieto výstupy do rovnakého súboru, môžete to urobiť tiež. Ak to chcete urobiť, stačí presmerovať všetok výstup do rovnakého súboru pomocou nasledujúceho príkazu.

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

Tento príkaz funguje takto:

  • Štandardný výstup je nasmerovaný do výstupného súboru označeného výstupným číslom 1.
  • Štandardný chybový výstup označený číslom 2 je presmerovaný do výstupného súboru označeného číslom 1.

Toto pripojí chybový výstup na koniec štandardného výstupu.

Toto je užitočný spôsob, ako zobraziť všetky výstupy pre ľubovoľný príkaz v jednom súbore. 

Stíšenie štandardných alebo chybových výstupných tokov(Silencing Standard or Error Output Streams)

Môžete tiež vypnúť štandardný výstup(Standard Output) alebo štandardnú chybu(Standard Error) presmerovaním výstupu na NUL namiesto súboru.

Ak použijete vyššie uvedený príklad, ak chcete iba štandardný výstup(Standard Output) a žiadnu štandardnú chybu(Standard Error) , môžete použiť nasledujúci príkaz:

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

Výsledkom bude rovnaký výstupný súbor ako v prvom príklade vyššie, kde ste presmerovali iba štandardný výstup(Standard Output) , ale s týmto príkazom sa chyba v konzole neodznie. Nevytvorí ani súbor denníka chýb.

To je užitočné, ak vás nezaujímajú žiadne chyby a nechcete, aby vás obťažovali.

Môžete vykonať ktorýkoľvek z rovnakých výstupných príkazov vyššie zo súboru BAT(inside a BAT file) a výstup z tohto riadku prejde do výstupného súboru, ktorý určíte. Je to užitočný spôsob, ako zistiť, či nejaké príkazy v súbore BAT mali pri pokuse o spustenie nejaké chyby.



About the author

V podnikaní je to všetko o vytváraní hodnoty pre vašich klientov a zákazníkov. Zameriavam sa na poskytovanie podrobných pokynov, ktoré pomôžu mojim čitateľom vyťažiť maximum zo svojho hardvéru a softvéru pomocou balíka Microsoft Office. Medzi moje zručnosti patrí inštalácia klávesnice a ovládačov, ako aj podpora Microsoft Office. S mojimi dlhoročnými skúsenosťami v tomto odvetví vám môžem pomôcť pokryť akékoľvek hardvérové ​​alebo softvérové ​​potreby, ktoré by ste mohli mať.



Related posts