Irányítsa át a kimenetet a Windows parancssorból egy szöveges fájlba

A Windows rendszeren(Windows) futtatott parancsok vagy kötegelt feladatok viselkedésének naplózásának és hibaelhárításának egyik leghasznosabb módja a kimenet átirányítása egy fájlba.

Van azonban néhány különböző mód a parancssori írások átirányítására egy fájlba. A választott beállítás attól függ, hogyan szeretné megtekinteni a parancs kimenetét.

Hogyan működik a Windows parancssori kimenet(How Windows Command Prompt Output Works)

Amikor beír egy parancsot a Windows konzolba ( parancssor(command prompt) ), a parancs kimenete két külön adatfolyamba kerül.

  • STDOUT : Standard Out , ahová a parancsokból származó szabványos válaszok eljutnak. Például a DIR parancs szabványos válasza egy könyvtárban található fájlok listája.
  • STDERR : Normál hiba(Standard Error) az a hely, ahová a hibaüzenetek mennek, ha probléma van a paranccsal. Például, ha nincsenek fájlok a könyvtárban, a DIR parancs a „ Fájl(File) nem található” szöveget írja ki a Standard Error adatfolyamba.

Mindkét kimeneti adatfolyam kimenetét átirányíthatja egy fájlba a Windows rendszerben .(Windows)

A szabványos kimeneti írás átirányítása új fájlba(Redirect Standard Output Write to New File)

Kétféleképpen irányíthatja át egy parancs szabványos kimenetét egy fájlba. Az első az, hogy a parancs kimenetének írását egy új fájlba küldjük minden alkalommal, amikor a parancsot futtatjuk.

Ehhez nyissa meg a parancssort, és írja be:

dir test.exe > myoutput.txt

A > karakter arra utasítja a konzolt, hogy az STDOUT parancsot(STDOUT) adja ki az Ön által megadott nevű fájlba.

Amikor futtatja ezt a parancsot(run this command) , észre fogja venni, hogy a parancsablakban nincs válasz, kivéve azt a hibát, hogy a fájl nem létezik.

Ennek az az oka, hogy a parancs szabványos kimenete a myoutput.txt nevű fájlba lett átirányítva. A fájl most ugyanabban a könyvtárban található, ahol a parancsot futtatta. A normál hibakimenet továbbra is a szokásos módon jelenik meg.

Megjegyzés(Note) : Ügyeljen arra, hogy a parancs futtatása előtt módosítsa a parancssor aktív könyvtárát . (change the active directory)Így tudni fogja, hogy a kimeneti fájlok hol vannak tárolva.

Megtekintheti a fájlhoz érkezett szabványos kimenetet, ha beírja a „myoutput.txt” parancsot a parancsablakba. Ez megnyitja a szövegfájlt az alapértelmezett szövegfájl-nézegetőben. A legtöbb ember számára ez általában a Notepad.exe .

Amikor legközelebb ugyanazt a parancsot futtatja, az előző kimeneti fájl törlődik. Új kimeneti fájl jön létre a legutóbbi parancs kimenetével.

A szabványos kimeneti(Standard Output) írások átirányítása ugyanabba a fájlba(Same File)

Mi van, ha nem akarja felülírni ugyanazt a fájlt? Egy másik lehetőség a >> használata a > helyett a kimeneti fájlra való átirányításhoz. Ebben a példában a következőket kell beírnia:

dir test.exe >> myoutput.txt

Ugyanazt a kimenetet fogja látni (csak a hiba).

De ebben az esetben a kimeneti fájl felülírása helyett ez a parancs hozzáfűzi az új kimenetet a meglévő kimeneti fájlhoz.

Minden alkalommal, amikor futtat egy parancsot, és hozzáfűzi a kimenetet egy fájlhoz, az új szabványos kimenetet írja a meglévő fájl végére.

Szabványos hiba átirányítása fájlba(Redirect Standard Error To a File)

Ugyanúgy, ahogy a szabványos kimeneti írásokat átirányíthatja egy fájlba, a szabványos hibafolyamot is kiadhatja egy fájlba.

Ehhez hozzá kell adnia a 2> karaktert a parancs végéhez, majd a létrehozni kívánt kimeneti hibafájlt.

Ebben a példában a következő parancsot kell begépelnie: 

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

Ez elküldi a szabványos kimeneti adatfolyamot a myoutput.txt fájlba, a szabványos hibafolyamot pedig az output.err fájlba. Az eredmény az, hogy egyáltalán nem jelenik meg kimeneti adatfolyam a konzolablakban.

A hibaüzeneteket azonban az output.err(output.err) beírásával láthatja . Ez megnyitja a fájlt az alapértelmezett szövegfájl-nézegetőben.

Amint láthatja, a parancs minden hibaüzenete a hibafájlba kerül. Csakúgy(Just) , mint a szabványos kimenetnél, a >> használatával hozzáfűzheti a hibát a korábban futtatott parancsok hibáihoz.

Az összes kimeneti írás átirányítása ugyanabba a fájlba(Redirect All Output Writes to a Same File)

A fenti megközelítések mindegyike több fájlt eredményez. Az egyik fájl a szabványos kimeneti adatfolyamhoz, a másik pedig a szabványos hibafolyamhoz.

Ha mindkét kimenetet ugyanabba a fájlba szeretné belefoglalni, ezt is megteheti. Ehhez csak át kell irányítania az összes kimenetet ugyanabba a fájlba a következő paranccsal.

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

A parancs a következőképpen működik:

  • A szabványos kimenet az 1-es kimeneti számmal azonosított kimeneti fájlba kerül.
  • A 2-es számmal azonosított szabványos hibakimenet át lesz irányítva az 1-es számmal azonosított kimeneti fájlba.

Ez hozzáfűzi a hibakimenetet a szabványos kimenet végéhez.

Ez egy hasznos módja annak, hogy bármely parancs összes kimenetét egy fájlban tekintse meg. 

Szabványos vagy hibás kimeneti adatfolyamok elnémítása(Silencing Standard or Error Output Streams)

Kikapcsolhatja a normál kimenetet(Standard Output) vagy a szabványos hibát(Standard Error) is, ha a kimenetet fájl helyett NUL -ra irányítja át .

A fenti példa alapján, ha csak szabványos kimenetet(Standard Output) szeretne, és egyáltalán nem szabványos hibát(Standard Error) , akkor a következő parancsot használhatja:

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

Ez ugyanazt a kimeneti fájlt eredményezi, mint a fenti első példában, ahol csak a szabványos kimenetet(Standard Output) irányította át, de ezzel a paranccsal a hiba nem visszhangzik a konzolon belül. Nem hoz létre hibanapló fájlt sem.

Ez akkor hasznos, ha nem törődik a hibákkal, és nem szeretné, hogy azok zavaróak legyenek.

A fenti kimeneti parancsok bármelyikét végrehajthatja egy BAT-fájlon belül,(inside a BAT file) és a sor kimenete az Ön által megadott kimeneti fájlba kerül. Ez egy hasznos módja annak ellenőrzésére, hogy a BAT -fájlban lévő parancsok nem hibáztak-e, amikor megpróbálták futtatni.



About the author

Webfejlesztő vagyok, tapasztalattal a Firefox és a Google Docs területén. A Floridai Egyetemen szereztem diplomát üzleti adminisztrációból. Szakképzettségeim a következők: weboldalkészítés, tartalomkezelő rendszer (CMS), adatelemzés és felhasználói felület tervezés. Tapasztalt tanácsadó vagyok, aki segíthet csapatának hatékony webhelyek és alkalmazások létrehozásában.



Related posts