Ako používať PowerShell na zápis do textového súboru

3. júna 2021 102357 Názory

Táto zóna S vás naučí rôzne spôsoby, ako používať PowerShell na zapisovanie do súboru.





Sprievodca začína diskusiou o rôznych cmdletoch PowerShell používaných na zapisovanie výstupu do súboru. Sekcia pokrýva Out-File , Add-Content a Set-Content cmdlet s príkladmi.



Potom sa v druhej časti naučíte používať rôzne prostredie PowerShell Metódy manipulovať so zápisom a aktualizovať textový súbor.

Nakoniec posledná časť obsahuje všetky možné príklady zápisu výstupu do textových súborov v prostredí PowerShell. Príklady siahajú od jednoduchých príkladov, ako je prepisovanie textových súborov, až po pokročilé príklady, ako je manipulácia s kódovaním súborov.



Ak hľadáte konkrétny príklad, nižšie rozbaľte Prehľadávať témy príspevkov a kliknite na tému.



Sprievodca obsahuje sekciu FAQ s krátkymi odpoveďami na často kladené otázky o používaní prostredia PowerShell na zapisovanie výstupu do textového súboru.

Prehľadávať témy príspevkov

Rutiny prostredia PowerShell používané na zapisovanie alebo aktualizáciu textových súborov

Rutiny prostredia PowerShell na zapisovanie alebo aktualizáciu textových súborov

Táto časť predstavuje štyri rutiny cmdlet PowerShell používané na zápis, aktualizáciu alebo nahradenie textových súborov. V každej podsekcii v tejto časti sa dozviete, ako ju používať Out-File , Pridať obsah a Set-Content .



Ako zapísať výstup PowerShell do textového súboru pomocou Out-File

Zápis výstupu do textového súboru je rovnako jednoduchý ako prepojenie výstupu prvého príkazu do Out-File a zadajte cestu k textovému súboru.



mame kam dať chd

V mojom prvom príklade zadávam text do výzvy PowerShell a potom ho prenesiem do Out-File .

|_+_| Ak súbor neexistuje, Out-File ho vytvorí na ceste zadanej v súbore Cesta k súboru parameter.

Príkaz sa vykoná a vráti sa do príkazového riadka PowerShell.

Ako používať Out-File v PowerShell na zapisovanie alebo pridávanie do súboru

Tu je súbor vytvorený v zadanej ceste. Druhý obrázok je obsah textového súboru.

Ako používať Out-File v PowerShell na zapisovanie alebo pridávanie do súboru

Túto metódu môžete použiť na zápis výstupu ľubovoľného príkazu PowerShell do textového súboru.

V tomto druhom príklade zapíšem výstup Get-Process do textového súboru. Tu je príkaz:

|_+_|

Príkaz sa vykoná a vytvorí súbor process.txt. Výstup je zobrazený na druhom obrázku nižšie:

Ako pripojiť výstup PowerShell k existujúcemu textovému súboru pomocou Out-File

Ďalším spôsobom, ako použiť PowerShell na zápis do súboru, je pripojiť (pridať ďalší obsah) k existujúcemu textovému súboru s určitým obsahom.

V nadväznosti na prvý príklad nižšie uvedený príkaz pripojí (pridá) informácie pred kanál (|) na koniec súboru first-file.txt.

|_+_|

Súbor má teraz druhý riadok s textom Toto bude pridaný pod prvý riadok. Pozrite si obrázok nižšie.

Ako použiť Pridať obsah V PowerShell na pripojenie k textovému súboru

PowerShell môžete použiť aj na zápis do súboru pripojením k existujúcemu textovému súboru s Pridať obsah Cmdlet.

Pridanie Toto bude pridané pod druhý riadok k nášmu existujúcemu súboru first-file.txt, zadajte tento príkaz a stlačte kláves enter.

|_+_|

Súbor bude mať teraz tretí riadok s textom Toto sa pripojí pod druhý riadok. Pozrite si obrázok nižšie:

V poslednom príklade pripojím (zapíšem) výstup z Get-Process Rutina cmdlet na procesy.txt vytvorená v súbore Out-File príklad.

V tomto príklade spustím nasledujúce príkazy:

|_+_| |_+_|

Prvý príkaz uloží výstup z Get-Process v Proces premenlivý. Druhý príkaz pripojí výstup z premennej do súboru process.txt.

Na zapisovanie do súboru (alebo pripojenie k existujúcemu súboru) pomocou PowerShell môžete použiť jednu z metód uvedených v tejto zóne S!

Ako použiť Set-Content V PowerShell na zápis do textového súboru

Doteraz som vám v tejto časti ukázal, ako používať Out-File zapisovať do textového súboru. Tiež ste videli, ako použiť rovnakú cmdlet na pripojenie k textovému súboru.

Nakoniec, v poslednej podsekcii som vám ukázal, ako používať Pridať obsah na pripojenie výstupu k textovému súboru.

Táto podsekcia uvádza Set-Content . Jeden rozdiel medzi touto cmdletom a ďalšími 2, o ktorých sme už hovorili, je ten, že while Out-File a Pridať obsah môže pripojiť obsah k textovému súboru, Set-Content prepíše obsah.

Takže príkaz nižšie prepíše obsah súboru novým obsahom špecifikovaným v Hodnota parameter.

|_+_|

Tu je textový súbor – všetok jeho predchádzajúci obsah bol nahradený!

Textový súbor PowerShell Metódy Používa sa na písanie alebo aktualizáciu textových súborov

Ako zapisovať do textového súboru pomocou metód textového súboru PowerShell

Prvá časť tejto príručky sa týkala rôznych cmdletov PowerShell používaných na zapisovanie výstupu do textových súborov. V tejto časti sa dozviete, ako vykonávať rovnaké úlohy s textovým súborom PowerShell Metódy .

Sekcia začína tým, že vás naučí, ako nájsť dostupný textový súbor Metódy . Potom sa v nasledujúcich podsekciách naučíte používať tieto PowerShell Metódy zapisovať, aktualizovať a prepisovať obsahové textové súbory.

Na vysvetlenie, ako nájsť PowerShell, použijem textový súbor na snímke obrazovky nižšie Metódy dostupné, keď uvediete textový súbor s príponou Získajte obsah Cmdlet. Okrem toho tento textový súbor použijem pre príklady vo všetkých podkapitolách tejto časti.

Ako nájsť metódy textového súboru PowerShell

Ak chcete zobraziť zoznam všetkých Metódy a Operátori dostupné v textovom súbore, prepojte výstup súboru Získajte obsah prikázať Staňte sa členom .

Tu je vzorový príkaz....

|_+_|

Príkaz uvádza veľa prostredia PowerShell Metódy . Pre účely tohto návodu ma však zaujíma nasledovné Metódy :

  • Vložiť
  • Odstrániť
  • Vymeňte

Okrem toho použijem aj IndexOf Metóda v mojich ilustráciách. Tieto som zdôraznil Metódy ako výsledok posledného príkazu...

V nasledujúcich podkapitolách sa naučíte používať tieto PowerShell Metódy dostupné, keď uvediete textový súbor s príponou Získajte obsah Cmdlet.

Ako používať PowerShell Vložiť Metóda pripojenia reťazcov k existujúcemu textovému súboru

Všeobecná syntax prostredia PowerShell Vložiť Metóda je…

|_+_|

The štartovací index je prvý znak podreťazca, pred ktorý chceme vložiť text. Okrem toho, hodnota reťazca je text, ktorý chcete vložiť.

Jeden jednoduchý spôsob, ako určiť startIndex je vypočítať IndexOf hodnotu reťazca, okolo ktorého chcete vložiť text.

Viem, že väčšina z toho, čo som povedal, vám môže znieť ako gréčtina! Dovoľte mi to vysvetliť na príklade v mojom textovom súbore.

Na začiatok chcem uložiť cestu k môjmu súboru do premennej. Uľahčí mi to neskoršie uloženie aktualizovaného obsahu.

|_+_|

Ďalej použijem Získajte obsah príkaz na výpis obsahu textového súboru. Potom uložte výsledok do inej premennej...

|_+_|

Skôr než prejdem k ďalšiemu kroku, dovoľte mi vrátiť syntax prostredia PowerShell Vložiť metóda…

|_+_|

Ako som už naznačil, najjednoduchší spôsob, ako určiť startIndex – pozícia v textovom súbore, do ktorej chceme vložiť text – je použiť IndexOf Metóda .

V tomto príklade chcem vložiť slovo nie pred prepísaním...

Ako používať metódu vloženia PowerShell na pripojenie textu k existujúcemu textovému súboru

Prvým krokom je určiť IndexOf hodnota prepísania. Nižšie uvedený príkaz vykoná túto úlohu...

|_+_|

Výsledkom je 10.

Majte na pamäti, že toto IndexOf z 10 je presne na začiatku prvého znaku slova, prepísať.

S ohľadom na to, ak chcem vložiť reťazec (text, čísla, znaky – čokoľvek), pred prepísaním použijem 10 ako startIndex .

Navyše, ak chcem čokoľvek vložiť na koniec reťazca, prepísať, spočítam počet znakov od prvého znaku – v tomto prípade o – po koniec reťazca, prepísať – to bude 18

Všimnite si, že aj medzery sa počítajú ako znaky.

Ale na účely tohto príkladu chcem vložiť slovo nie predtým prepísať...

Ako používať metódu vloženia PowerShell na pripojenie textu k existujúcemu textovému súboru

Toto je príkaz, ktorý robí túto mágiu...

|_+_| Za not som pridal medzeru, aby sa vytvorila medzera medzi not a overwrite.

V príkaze 10 je startIndex , nie je hodnota reťazca . Tento príkaz sa riadi syntaxou metódy vloženia nižšie…

|_+_|

A tu je výsledok posledného príkazu v PowerShell. Výsledok obsahuje slovo, ktoré sme vložili!

Ale ešte sme neskončili. Posledným krokom je zapísanie tejto hodnoty do rovnakého textového súboru.

Aby sme to dosiahli, musíme použiť Set-Content príkaz. Ak si spomínate, v poslednej časti som spomenul, že na rozdiel od ostatných 2 cmdletov, o ktorých som hovoril v tejto časti, Set-Content prepíše obsah textového súboru.

Ak teda chcete zapísať výstup posledného príkazu PowerShell do rovnakého textového súboru, spustite príkaz nižšie…

|_+_|

Keď spustím tento posledný príkaz a otvorím svoj textový súbor, slovo nie je teraz súčasťou reťazcov v textovom súbore!

Ako používať metódu vloženia PowerShell na pripojenie textu k existujúcemu textovému súboru

Ako používať PowerShell Odstrániť Metóda na odstránenie reťazcov v existujúcom textovom súbore

Keď som predstavil túto časť, spomenul som, že uvediem príklady s PowerShell Odstrániť Metóda. V tejto podsekcii sa dozviete, ako použiť túto metódu PowerShell na odstránenie reťazcov z textového súboru.

Začnime syntaxou Odstrániť metóda:

ako odstrániť sim kartu galaxy s7
|_+_| |_+_|

V prvej syntaxi jednoducho špecifikujete startIndex . Okrem toho v druhej syntaxi musíte zadať startIndex a počítať .

Ako som vysvetlil v poslednej podsekcii, môžete získať startIndex výpočtom IndexOf syntaxe, ktorú chcete odstrániť.

Okrem toho pre druhú syntax, počítať je počet znakov – od startIndex – chcete odstrániť.

Povedzme teda, že chceme odstrániť reťazec, ktorý nebol pridaný do nášho textového súboru v poslednej podsekcii. Prvým krokom je určiť IndexOf prvého znaku reťazca, nie.

Pokračovaním v príkladoch v poslednej podsekcii tretí príkaz nižšie určí IndexOf hodnota:

|_+_|

Výsledkom je 10…

Ako používať metódu odstránenia PowerShell na odstránenie reťazcov v existujúcom textovom súbore

Pokračujeme, na odstránenie reťazca, nie, použijeme druhú syntax z Odstrániť Metóda.

|_+_|

V mojom príklade, startIndex je 10. Predtým som vysvetlil, že počítať je počet znakov – od startIndex – chcete odstrániť.

Chceme teda odstrániť reťazec, nie – čo sú 3 znaky z startIndex . Preto, počítať je 3.

Na základe týchto informácií príkaz uvedený nižšie odstráni reťazec, nie z nášho textového súboru.

|_+_|

Tu je výsledok…

Ak sa na výsledok pozriete pozorne, všimnete si, že medzi vôľou a prepísaním je dvojitá medzera. Ak chcete odstrániť jeden z medzier, urobte počítať 4…

|_+_|

Teraz je priestor preč!

Ako používať metódu odstránenia PowerShell na odstránenie reťazcov v existujúcom textovom súbore

Nakoniec použite príkaz PowerShell nižšie na zapísanie aktualizovaného textu do súboru...

|_+_|

Po spustení príkazu sa súbor aktualizuje bez reťazca, nie. Pozrite si snímky obrazovky nižšie…

Ako používať PowerShell Vymeňte Metóda nahradenia reťazca v textovom súbore

V posledných 2 podsekciách tejto časti som vás naučil, ako používať Vložiť a Odstrániť PowerShell Metódy zapisovania do textového súboru.

V tejto poslednej podkapitole sa dozviete, ako nahradiť reťazec iným reťazcom. Ako obvykle, začnime syntaxou súboru Vymeňte metóda:

|_+_|

Na rozdiel od ostatných 2 metód, ktoré si vyžadujú určenie štartovací index , alebo počítať , Vymeňte Metóda nie. Všetko, čo potrebujete nahradiť reťazec, je zadať reťazec, ktorý chcete nahradiť, a potom zadať nový reťazec.

Pre ilustráciu na príklade sa vráťme k nášmu textovému súboru. V tomto príklade chcem nahradiť reťazec, prepísať ho zápisom cez...

Tretí príkaz uvedený nižšie vykoná túto úlohu. Znovu som zaviedol prvé dva príkazy, takže môžem získať aktualizovanú verziu textového súboru v mojich premenných.

Okrem toho posledný príkaz PowerShell zapíše aktualizovaný výstup do rovnakého textového súboru…

|_+_|

Po spustení príkazov sa textový súbor aktualizuje. Pozrite si snímku obrazovky nižšie…

Ako používať operátory presmerovania PowerShell na pripojenie k textovému súboru

Windows PowerShell má sadu operátori presmerovania . Dva z týchto operátorov presmerovania môžete použiť na zapisovanie alebo aktualizáciu textových súborov v prostredí PowerShell.

Som si vedomý toho, že operátori presmerovania nezapadajú do tejto časti o zapisovaní do textového súboru pomocou metód PowerShell. Toto je však jediná logická časť, ktorú môžem zahrnúť do tejto témy.

Na vytvorenie nového textového súboru a zápis doň použite operátor presmerovania >. Ak použijete tento operátor na zápis streamu PowerShell do textového súboru, prepíše sa tým obsah textového súboru.

Ak však chcete aktualizovať textový súbor bez prepísania jeho obsahu, použite operátor presmerovania >>.

Na ilustráciu fungovania týchto operátorov spustite nasledujúce príkazy.

prečo sa môj ipod neobjavuje na itunes
|_+_| |_+_|

Prvý príkaz vytvorí textový súbor, E: eportsRedirectExample.txt . Potom zapíše presmerovanie do textového súboru.

Druhý príkaz navyše pripojí riadok presmerovania 2 do rovnakého textového súboru. Tu sú príkazy v PowerShell a snímka obrazovky textového súboru.

Ako používať operátory presmerovania PowerShell na pripojenie k textovému súboru

Príklady zápisu PowerShell do textového súboru

Príklady zápisu PowerShell do textového súboru

V tejto poslednej časti budem zdieľať niekoľko príkladov zápisu do textového súboru v prostredí PowerShell. V príkladoch použijem zručnosti uvedené v prvých dvoch častiach tejto príručky.

Ako zapísať výstup PowerShell do textového súboru a prepísať ho

Existujú tri spôsoby, ako prepísať obsah textového súboru. Po prvé, ak spustíte Out-File príkaz bez Pripojiť prepíše obsah textového súboru.

Okrem toho môžete prepísať obsah textového súboru pomocou Set-Content príkaz. Nakoniec môžete použiť > operátor presmerovania na prepísanie obsahu textu.

Aby sme uviedli niekoľko príkladov, nižšie uvedené príkazy prepíšu obsah textového súboru, E: eportsoverwrite.txt :

|_+_|

Snímka obrazovky nižšie zobrazuje príkazy a konečný obsah textového súboru.

Ako zapísať výstup PowerShell do textového súboru a konzoly

Ak chcete zapísať výstup PowerShell do textového súboru a zobraziť výstup aj do konzoly, môžete použiť jeden z týchto dvoch cmdletov – Pridať obsah alebo Set-Content .

Tieto dve cmdlety majú parameter s názvom Prejsť cez . Ak použijete Prejsť cez parameter, PowerShell zapíše výstup do zadanej cesty k textovému súboru; potom ho zobrazí aj na konzole.

Používaná rutina cmdlet však závisí od toho, či chcete pripojiť k textovému súboru alebo prepísať obsah textového súboru. Ak chcete pridať do textového súboru, použite Pridať obsah .

Ak však zamýšľate prepísať obsah textového súboru, použite Set-Content . Uvediem to na dvoch príkladoch.

Na pripojenie vety sa k nej pripája znak Pridať obsah , do zadaného textového súboru a zobrazte správu na konzole, spustite príkaz nižšie:

|_+_|

Snímka obrazovky nižšie zobrazuje výsledok príkazu v PowerShell a výstup textového súboru.

Ako zapísať výstup PowerShell do textového súboru a konzoly

Naopak, ak chcete prepísať obsah textového súboru a zapísať výstup aj do konzoly, použite príkaz nižšie...

|_+_|

Nakoniec je tu výstup príkazu PowerShell zobrazený na konzole a tiež zapísaný do textového súboru. Tentoraz však prepísal obsah textového súboru.

Ako zapísať výstup PowerShell do textového súboru bez nového riadku

Ak spustíte tento príkaz PowerShell, namiesto zápisu výstupu do rovnakého riadku v textovom súbore zapíše dva reťazce, Victor a Ashiedu do dvoch riadkov…

|_+_|

Ak je však vaším cieľom napísať obidva reťazce na rovnaký riadok, musíte pridať reťazec Out-File Volal sa parameter rutiny NoNewline .

|_+_|

Teraz má textový súbor oba reťazce na rovnakom riadku! Medzi týmito dvoma reťazcami však nie je medzera – v tomto prípade ide o meno a priezvisko osoby.

Ako zapísať výstup PowerShell do textového súboru bez nového riadku

Ak chcete medzi tieto dva názvy vložiť medzeru, pridajte medzeru pred druhý reťazec Ashiedu. Príkaz nižšie je rovnaký ako predchádzajúci príkaz s výnimkou medzery pred druhým reťazcom.

najlepší správca súborov pre Windows 10
|_+_|

Tu je textový súbor…

Ak nechcete prepísať textový súbor, zadajte Pripojiť parameter v poslednom príkaze.

Ako zapísať výstup PowerShell do textového súboru s kódovaním UTF 8

The Out-File Rutina cmdlet má parameter s názvom Kódovanie . Keď zapisujete výstup PowerShell do textového súboru, môžete tento parameter použiť na určenie kódovania súboru.

Okrem toho, ak chcete zmeniť kódovanie existujúceho textového súboru, môžete výstup súboru prepojiť Získajte obsah prikázať Out-File .

The Kódovanie parameter podporuje UTF8, ASCII, UTF32 a ďalšie. Môžete zadať ktorýkoľvek typ kódovania.

Takže, keďže táto podsekcia je o zapisovaní výstupu PowerShell do textového súboru s kódovaním UTF8, tu sú príklady príkazov, ktoré to dokážu…

|_+_| |_+_|

Prvý príkaz zapíše výstup do textového súboru s kódovaním UTF8.

Okrem toho druhý príkaz importuje obsah textového súboru do prostredia PowerShell s Získajte obsah . Potom zapíše rovnaký obsah do iného textového súboru s kódovaním UTF8.

Ako opraviť chybu PowerShell Write To File Access Denied

Niekedy sa pri pokuse zapísať výstup prostredia PowerShell do textového súboru môže zobraziť chybové hlásenie o odmietnutí prístupu. Táto chyba môže byť spôsobená viacerými príčinami.

Jedným z dôvodov, prečo sa vám môže zobraziť chybové hlásenie o odmietnutí prístupu, je pokus o zápis do otvoreného textového súboru. Ak sa pokúsite zapísať do textového súboru, ktorý používa iný proces systému Windows, môže sa zobraziť chybové hlásenie o odmietnutí prístupu.

Ďalším dôvodom, prečo sa vám môže zobraziť chyba odmietnutia prístupu, je, ak sa pokúsite vytvoriť textový súbor s nepodporovaným znakom. Ak sa napríklad pokúsite vytvoriť textový súbor, ktorý vo svojom názve obsahuje znak /, môže sa zobraziť chybové hlásenie o odmietnutí prístupu.

Nakoniec, ak má textový súbor atribút Iba na čítanie, zobrazí sa aj chybové hlásenie o odmietnutí prístupu.

Takže riešením tohto problému je identifikovať dôvod chybového hlásenia. Potom vykonajte zmeny.

V ďalšej podsekcii vás naučím, ako zapísať výstup PowerShell do textového súboru, ktorý má atribút Iba na čítanie.

Ako používať PowerShell na zápis do textového súboru iba na čítanie

Ak sa pokúsite zapísať výstup prostredia PowerShell do textového súboru iba na čítanie, zobrazí sa chybové hlásenie o odmietnutí prístupu. Aby som to otestoval, povolil som atribút Iba na čítanie pre jeden z textových súborov, ktoré sme vytvorili predtým.

Ako používať PowerShell na zápis do textového súboru iba na čítanie

Ak sa teraz pokúsim zapísať do textového súboru pomocou príkazu nižšie, zobrazí sa chybové hlásenie o odmietnutí prístupu.

|_+_|

Dobrou správou je, že všetky príkazy PowerShell, ktoré dokážu zapisovať do textového súboru, majú parameter s názvom sila . Ak zahrniete tento príkaz do Out-File , Set-Content , alebo Pridať obsah , môžete zapisovať do textového súboru iba na čítanie.

Ak napríklad upravíme posledný príkaz, ako je uvedené nižšie, príkaz nevráti žiadne chybové hlásenie.

|_+_|

Tentoraz je príkaz úspešný a textový súbor je aktualizovaný!

Ako používať PowerShell na zápis do textového súboru iba na čítanie

Ako zapísať výstup PowerShell do textového súboru a vytvoriť priečinok, ak neexistuje

V predvolenom nastavení, ak spustíte Out-File , Set-Content , alebo Pridať obsah príkazy a zadajte cestu k textovému súboru, ktorý neexistuje, súbor sa vytvorí.

Ak však zadaná cesta obsahuje priečinok, ktorý neexistuje, zobrazí sa chybové hlásenie. Aby som to otestoval, spustím príkaz uvedený nižšie, ktorý obsahuje priečinok, NoNewline – tento priečinok neexistuje v zadanej ceste…

|_+_|

Príkaz vráti chybovú správu.

Ak chcete tento problém vyriešiť, použite príkaz Test-Path a skontrolujte, či cesta existuje. Potom, ak neexistuje, použite Nová vec príkaz na jeho vytvorenie pred spustením Out-File príkaz.

Tu je aktualizovaný skript. Posledný riadok je najnovší príkaz v tejto príručke...

|_+_| The sila parameter je to, čo sily Nová vec na vytvorenie všetkých priečinkov, ktoré v ceste neexistujú.

Ak chcete skript spustiť, skopírujte ho do nového dokumentu PowerShell ISE a spustite ho. Pred spustením skriptu nižšie uvedená snímka obrazovky ukazuje, že priečinok neexistuje…

Ako zapísať výstup PowerShell do textového súboru a vytvoriť priečinok, ak neexistuje

Po spustení skriptu priečinok teraz existuje v ceste…

Nakoniec, ak otvoríte NoNewline priečinok, nájdete text, nonewline.txt .

Ako používať PowerShell zreťazenie na zápis do textového súboru

PowerShell môžete použiť na spojenie obsahu dvoch textových súborov do jedného textového súboru. Proces spájania dvoch textových súborov do jedného sa nazýva zreťazenie.

Aby som uviedol príklad, vytvoril som dva súbory, Processfile1.txt a Processfile2.txt . Potom používam Získajte obsah na zreťazenie súborov.

Nakoniec som rúra výsledok Získajte obsah do Set-Content a zapíšte zlúčené súbory do jedného súboru. Tu sú príkazy…

|_+_|

Ako používať PowerShell na zápis dátumu a času do textového súboru

Existuje toľko prípadov, kedy možno budete musieť zapísať dátum a čas do textového súboru. Jedným príkladom je, ak chcete vygenerovať protokol chýb.

Ak napríklad používate skript PowerShell na vykonanie úlohy na množstve serverov, je vhodné vytvoriť súbor denníka so servermi, ku ktorým sa skript nemohol pripojiť. Tieto protokolové súbory potom možno použiť na riešenie problémov.

Okrem toho, keď vytvárate takéto protokolové súbory, je tiež dobré zahrnúť dátum a čas. Týmto spôsobom budete vedieť, kedy sa skript pokúsil pripojiť k serveru.

Dosť bolo rečí! Dovoľte mi ukázať vám, ako písať dátumové a časové pečiatky do textového súboru pomocou PowerShell. V tomto príklade mám v textovom súbore zoznam neexistujúcich počítačov.

V nižšie uvedenom skripte používam Test-Connection príkaz ping na počítač. Potom, ak počítač odpovie, môj skript sa pokúsi vykonať niektoré úlohy na vzdialenom počítači.

Avšak, ak Test-Connection príkaz nedostane odpoveď zo vzdialeného počítača, skript vygeneruje chybové hlásenie s aktuálnym dátumom a časovou pečiatkou.

Nakoniec skripty zapíšu protokoly chýb s dátumom a časom do textového súboru.

Tu je scenár. Nižšie nájdete podrobné vysvetlenie každého riadku…

|_+_|

Ak chcete skript spustiť, skopírujte ho do nového dokumentu PowerShell ISE a potom skript spustite. Keď som spustil skript, vytvoril súbor s názvom Streda 02-06-2021.txt - dnešný dátum.

Okrem toho vytvoril položky textový súbor, Streda 02-06-2021.txt – pozri snímku obrazovky nižšie…

Na vysvetlenie skriptu som ho skopíroval nižšie. Pridal som aj čísla riadkov, aby sa dali ľahko odkazovať.

|_+_|

Tu je rozpis tohto zdanlivo zložitého skriptu PowerShell:

  1. In Riadok 1 , použil som Získajte obsah príkaz na import môjho zoznamu serverov do PowerShell. Servery sú uložené v textovom súbore – Get-Content E: eportsITGServers.txt. Nakoniec som výsledok zoznamu serverov uložil do premennej tzv servery .
  2. Potom v Riadok 2 Vytvoril som názov textového súboru, do ktorého budem ukladať svoje chybové hlásenia. Použil som Get-Date príkaz na vytvorenie textového súboru.

    V riadku 10 napíšem skript PowerShell, ktorý zapíše protokoly chýb do textového súboru – viac o tom neskôr. Nakoniec, aby som tento súbor mohol neskôr použiť v skripte, uložil som ho do premennej s názvom logfilename .
  3. Scenár pokračuje v 3. riadok V tomto riadku predstavujem Pre každý Metóda . Táto metóda mi umožňuje opakovať obsah súboru uloženého v servery premenlivý.

    Existujú dva dôležité prvky Pre každý Metóda uvedený v riadku 3 – ( a {. Prvá úvodná zátvorka, ( otvára Pre každý Metóda . Okrem toho zátvorka { otvorí súbor Pre každý príkazový blok príkazov.
  4. Potom v Riadok 4 , pingujem každý server uložený v servery premenlivý. Počas každého cyklu Pre každý iterácii bloku, prevezme názov servera z servery premenná – uloží ju do automatickej premennej $_ – potom použije názov servera uložený v $_ ako názov počítača v teste ping.

    Ešte raz, aby som uľahčil prístup k výsledku ping testu, uložím výsledok do inej premennej tzv PingTest . Výsledok testu ping bude buď Pravda alebo Nepravdivé .
  5. In Riadok 5 , uvádzam blok príkazov IF. Potom, v stav časť bloku (), pre každý server testujem, či je výsledok testu ping uložený v PingTest premenná je Pravda alebo Nepravdivé .

    Ďalej, ak je výsledok testu ping Pravda , skript PowerShell vykoná úlohu v príkazovom bloku príkazu IF. Príkazový blok príkazu IF sa otvorí zátvorkou { v riadku 5.
  6. Potom v Riadok 6 , spustím príkaz v bloku príkazov IF. In Riadok 7 , Zatvorím príkazový blok príkazu IF pomocou uzatváracej zátvorky }.
  7. Riadok 8predstavuje Inak výpisová časť bloku príkazov IF. V tomto bloku spustím príkaz, ktorý chcem spustiť na všetkých serveroch, ktoré pingovému testu vrátili hodnotu False.
  8. In Riadok 9 , skript vygeneruje aktuálny dátum a čas. Potom uloží výsledok do premennej tzv dátum a časová pečiatka . Skript použije túto premennú v riadku 10
  9. Potom v Riadok 10 , skript PowerShell zapíše aktuálny dátum a čas do textového súboru, ktorý som vytvoril v riadku 2. Príkaz v riadku 9 sa skladá z 3 častí.

    V prvej časti skript vygeneruje časť chybového hlásenia. Táto časť obsahuje premennú dateandtimestamp a niekoľko medzier.

    Potom v časti príkazu (správa) skript obsahuje aktuálnu správu – Server, $_ bol preskočený, pretože neodpovedal na ping. Automatická premenná $_ je rovnaká premenná vygenerovaná premennou ForEaxch vyhlásenie v Riadok 4 .

    Nakoniec je celá správa presmerovaná do príkazu Out-File – toto je in Riadok 11 .
  10. Riadok 12zatvára Inak príkazový blok príkazu s uzatváracou zátvorkou, }.
  11. Potom v Riadok 13 , skript zatvorí Pre každý príkazový blok s hodinami a uzatváracou zátvorkou, }.
  12. Nakoniec v Riadok 14 , skript zatvorí Pre každý Metóda s uzatváracou zátvorkou, ). The Pre každý Metóda bola otvorená na linke 3.

Použite PowerShell na zápis do textového súboru: Často kladené otázky

Použite Powershell na zápis do textového súboru: Často kladené otázky 1. Ako odošlem výsledky PowerShell do textového súboru?

Existujú 3 spôsoby, ako odoslať výsledky PowerShell do textového súboru.

Najprv môžete použiť operátor > vedľa výsledku, ktorý chcete odoslať do textového súboru, za ním medzeru a potom úplnú cestu k textovému súboru.

Okrem toho môžete použiť príkaz Cmdlets Out-File. Ak chcete použiť Out-File, pipe (|), výstup výsledku PowerShell do Out-File, za ktorým nasleduje medzera a potom úplná cesta k textovému súboru.

Nakoniec môžete pridať výsledky PowerShell do existujúceho textového súboru pomocou Add-Content. Použitie je podobné ako pri Out-File vysvetlenom vyššie.

2. Ako uložím textový súbor v prostredí PowerShell?

Môžete použiť Nová vec cmdlet na vytvorenie nového textového súboru v prostredí PowerShell. Ak chcete do textového súboru pridať položky a automaticky ho uložiť, použite Pridať obsah cmdlet.

3. Ako si prečítam súbor v prostredí PowerShell?

Použi Získajte obsah cmdlet na čítanie obsahu textového súboru v prostredí PowerShell. Ak chcete napríklad prečítať obsah súboru D: ext.txt, použite príkaz Get-Content D: ext.txt

Ako si prečítam súbor v PowerShell

4. Ako by ste zobrazili hodnotu uloženú v premennej v konzole PowerShell?

Zadajte názov premennej v prostredí PowerShell a stlačte kláves enter. Hodnota uložená v premennej Powershell sa zobrazí v konzole. Napríklad na zobrazenie hodnôt uložených v $Content premennej, jednoducho zadajte $ Console v PowerShell a stlačte kláves enter.

Ako by ste zobrazili hodnotu uloženú v premennej v konzole PowerShell?

5. Ako pridáte PowerShell?

Najjednoduchší spôsob pridania v prostredí PowerShell je zadať čísla oddelené znakom sčítania (+) a potom stlačiť kláves Enter. Ak chcete napríklad pridať 2 a 5, zadajte 2 + 5 a potom stlačte enter. Odpoveď sa zobrazí v konzole.

Ako pridáte PowerShell

Toto je to! Naša aktualizovaná príručka s komplexnými príkladmi zápisu výstupu PowerShell do textového súboru.

Dúfam, že vám táto zóna S pomohla. Ak to považujete za užitočné, zahlasujte áno za otázku Bol tento príspevok užitočný nižšie.

Prípadne môžete položiť otázku, zanechať komentár alebo poskytnúť spätnú väzbu pomocou formulára Zanechať odpoveď, ktorý nájdete na konci tejto stránky.

Nakoniec, ak chcete získať ďalšie zóny PowerShell S, navštívte našu stránku s návodmi na prostredie Windows PowerShell. Veľmi užitočná vám môže byť aj naša stránka Práca z domova.

prúd pc na amazonskú palicu

Referencie a ďalšie čítanie

  1. Out-File
  2. Pridať obsah
  3. Set-Content
  4. Out-Null
  5. Get-Date
  6. about_Redirection