Ohjaa ulostulo Windowsin komentoriviltä tekstitiedostoon

Yksi hyödyllisimmistä tavoista kirjata ja suorittaa Windowsissa(Windows) suorittamiesi komentojen tai erätöiden toiminnan vianmääritystä on ohjata tuloste tiedostoon.

Voit kuitenkin ohjata komentorivin kirjoituksia tiedostoon muutamalla eri tavalla. Valitsemasi vaihtoehto riippuu siitä, kuinka haluat nähdä komennon tulosteen.

Kuinka Windowsin komentokehotetulostus toimii(How Windows Command Prompt Output Works)

Kun kirjoitat komennon Windows - konsoliin ( komentokehote(command prompt) ), komennon tulos menee kahteen erilliseen tietovirtaan.

  • STDOUT : Standard Out on minne komentojen vakiovastaukset menevät. Esimerkiksi DIR - komennon vakiovastaus on luettelo tiedostoista hakemiston sisällä.
  • STDERR : Normaali virhe(Standard Error) on paikka, johon virheilmoitukset menevät, jos komennossa on ongelma. Esimerkiksi jos hakemistossa ei ole tiedostoja, DIR - komento tulostaa " Tiedostoa(File) ei löydy" Standard Error -virtaan.

Voit ohjata tulosteen uudelleen tiedostoon Windowsissa(Windows) molemmille tulosteille.

Ohjaa vakiotulosteen kirjoitus uuteen tiedostoon(Redirect Standard Output Write to New File)

Voit ohjata komennon vakiotulosteen tiedostoon kahdella tavalla. Ensimmäinen on lähettää komennon tuloste kirjoittaa uuteen tiedostoon aina, kun suoritat komennon.

Voit tehdä tämän avaamalla komentokehotteen ja kirjoittamalla:

dir test.exe > myoutput.txt

Merkki > käskee konsolia tulostamaan STDOUT antamasi(STDOUT) nimen tiedostoon.

Kun suoritat tämän komennon(run this command) , huomaat, että komentoikkunassa ei ole muuta vastausta kuin virhe, jonka mukaan tiedostoa ei ole olemassa.

Tämä johtuu siitä, että komennon vakiotulostus ohjattiin tiedostoon, jonka nimi on myoutput.txt. Tiedosto on nyt samassa hakemistossa, jossa suoritit komennon. Vakiovirhetulostus näkyy edelleen normaalisti.

Huomautus(Note) : Muista vaihtaa komentokehotteen aktiivinen hakemisto(change the active directory) ennen komennon suorittamista. Näin tiedät, mihin tulostiedostot on tallennettu.

Voit tarkastella tiedostoon menneitä vakiotulosteita kirjoittamalla komentoikkunaan "myoutput.txt". Tämä avaa tekstitiedoston oletustekstitiedostojen katseluohjelmassasi. Useimmille ihmisille tämä on yleensä Notepad.exe .

Kun seuraavan kerran suoritat saman komennon, edellinen tulostiedosto poistetaan. Uusi tulostiedosto luodaan uudelleen viimeisimmän komennon tulosteella.

Uudelleenohjaa vakiotulostuskirjoitukset(Standard Output) samaan tiedostoon(Same File)

Entä jos et halua korvata samaa tiedostoa? Toinen vaihtoehto on käyttää >> sijaan > ohjata tulostiedostoon. Tämän esimerkin tapauksessa kirjoitat:

dir test.exe >> myoutput.txt

Näet saman tulosteen (vain virhe).

Mutta tässä tapauksessa tulostiedoston korvaamisen sijaan tämä komento liittää uuden tulosteen olemassa olevaan tulostiedostoon.

Aina kun suoritat komennon ja liität tulosteen tiedostoon, se kirjoittaa uuden vakiotulosteen olemassa olevan tiedoston loppuun.

Ohjaa vakiovirhe tiedostoon(Redirect Standard Error To a File)

Samalla tavalla kuin voit ohjata vakiotulosteen kirjoituksia tiedostoon, voit myös tulostaa normaalin virhevirran tiedostoon.

Tätä varten sinun on lisättävä komennon loppuun 2> ja sen jälkeen tulostevirhetiedosto, jonka haluat luoda.

Tässä esimerkissä kirjoitat komennon: 

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

Tämä lähettää vakiolähtövirran tiedostoon myoutput.txt ja normaalin virhevirran tiedostoon output.err. Tuloksena on, että konsoli-ikkunassa ei näytetä lainkaan lähtövirtaa.

Näet kuitenkin virheilmoitukset kirjoittamalla output.err . Tämä avaa tiedoston oletustekstitiedostojen katseluohjelmassasi.

Kuten näet, kaikki komennon virheilmoitukset tulostetaan virhetiedostoon. Aivan(Just) kuten vakiolähdössä, voit käyttää >> sen sijaan liittääksesi virheen aiemmin suoritettujen komentojen virheisiin.

Ohjaa kaikki ulostulokirjoitukset samaan tiedostoon(Redirect All Output Writes to a Same File)

Kaikki yllä olevat lähestymistavat johtavat useisiin tiedostoihin. Yksi tiedosto on vakiotulostevirtaa ja toinen normaalia virhevirtaa varten.

Jos haluat sisällyttää nämä molemmat lähdöt samaan tiedostoon, voit myös tehdä sen. Tätä varten sinun tarvitsee vain ohjata kaikki tulosteet samaan tiedostoon seuraavalla komennolla.

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

Näin tämä komento toimii:

  • Vakiotulostus ohjataan tulostiedostoon, joka on merkitty tulostenumerolla 1.
  • Numerolla 2 merkitty vakiovirhetuloste ohjataan numerolla 1 merkittyyn tulostetiedostoon.

Tämä lisää virhetulosteen vakiotulosteen loppuun.

Tämä on hyödyllinen tapa nähdä minkä tahansa komennon kaikki tulosteet yhdessä tiedostossa. 

Vakio- tai virhelähtövirtojen hiljentäminen(Silencing Standard or Error Output Streams)

Voit myös kytkeä joko vakiolähdön(Standard Output) tai vakiovirheen(Standard Error) pois päältä ohjaamalla lähdön NUL :iin tiedoston sijaan.

Yllä olevan esimerkin avulla voit käyttää seuraavaa komentoa , jos haluat vain vakiolähdön (Standard Output)etkä(Standard Error) ollenkaan vakiovirhettä:

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

Tämä johtaa samaan tulostiedostoon kuin yllä olevassa ensimmäisessä esimerkissä, jossa ohjasit vain vakiotulosteen(Standard Output) , mutta tällä komennolla virhe ei toistu konsolin sisällä. Se ei myöskään luo virhelokitiedostoa.

Tämä on hyödyllistä, jos et välitä virheistä etkä halua niiden aiheuttavan haittaa.

Voit suorittaa minkä tahansa yllä olevista samoista tulostuskomennoista BAT-tiedoston sisältä(inside a BAT file) , jolloin rivin tuloste siirtyy määrittämääsi tulostustiedostoon. Tämä on hyödyllinen tapa nähdä, onko BAT - tiedoston komennoissa virheitä, kun niitä yritettiin suorittaa.



About the author

Hei! Nimeni on ja olen laitteistohakkeri. Minulla on yli 10 vuoden kokemus tietokoneiden korjaamisesta ja muokkaamisesta. Voin korjata melkein mitä tahansa kannettavista tietokoneista tabletteihin ja älytelevisioihin. Taitojeni avulla pystyn auttamaan asiakkaita ratkaisemaan ongelmansa nopeasti ja tehokkaasti. Blogini on omistettu auttamaan ihmisiä korjaamaan tietokoneita ja laitteitaan oikeilla työkaluilla. Ja Facebook-sivullani jaan vinkkejä, temppuja ja oivalluksia kaikesta tietokoneeseen liittyvästä!



Related posts