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.
Related posts
Uložte zoznam spustených procesov do textového súboru v systéme Windows
Ako používať príkaz Taskkill v systéme Windows 10/11
Ako odstrániť text z ikon na paneli úloh systému Windows
Zabráňte prístupu k príkazovému riadku v systéme Windows
Odstráňte textové štítky z ikon na pracovnej ploche v systéme Windows 7/8/10
Použite Netstat na zobrazenie portov počúvania a PID v systéme Windows
Ako opraviť chybu Stop:0x000000F4 s modrou obrazovkou v systéme Windows
Ako opraviť problém „Názov súboru je príliš dlhý“ v systéme Windows
Odinštalujte a znova nainštalujte IE v systéme Windows 7
Recenzia knihy – Návod ako na to Geek Windows 8
Ako odstrániť priečinok Windows.old v systéme Windows 7/8/10
Vyčistite priečinok WinSxS v systéme Windows 7/8/10
Ako znížiť vysoké využitie procesora Windows Explorer
Ako zistiť, akú verziu systému Windows máte nainštalovanú
Ako zobraziť zoznam všetkých služieb systému Windows pomocou prostredia PowerShell alebo príkazového riadka
Povoľte herný režim na vyhladenie výkonu v systéme Windows 10
Otvorte príkazový riadok v priečinku pomocou programu Windows Explorer
Vygenerujte správu o stave systému v systéme Windows 7 na kontrolu chýb
Ako odinštalovať BlueStacks na Windows a Mac
Povoliť a zakázať funkcie systému Windows