Ako používať Powershell Get-Content a forEach s príkladmi

17. júna 2021 16866 Názory PowerShell Vyskúšajte príklady Catch

Táto S zóna vás naučí, ako skombinovať PowerShell Get-Content so slučkou ForEach. Môžete použiť Get-Content na zobrazenie obsahu textového súboru a potom použiť príkaz ForEach na iteráciu obsahu textového súboru.





Existujú 3 varianty PowerShell ForEach. Existuje vyhlásenie ForEach a metóda ForEach.
Okrem toho existuje cmdlet ForEach-Object.



Táto príručka začína diskusiou o príkaze Get-Content – ​​jeho syntaxi, parametroch a niekoľkých príkladoch.

Potom sa v zostávajúcich častiach príručky dozviete, ako používať každý z 3 variantov PowerShell ForEach a Get-Content. Pre každý variant ForEach rozoberiem jeho syntax.



Nakoniec ukážem niekoľko príkladov, ako používať variant PowerShell ForEach a Get-Content.



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

Príkaz Get-Content: Syntax, parametre, príklady

Príkaz Get-Content: Syntax, parametre, príklady

Ako som spomenul vo svojom úvode, predtým, ako budete môcť použiť PowerShell ForEach na iteráciu obsahu súboru, musíte najskôr importovať obsah textového súboru do PowerShell.



Rutina Get-Content sa používa na vypísanie alebo importovanie obsahu textového súboru do prostredia PowerShell.



V tejto časti sa pozrieme na syntax a parametre Get-Content. Časť ukončím niekoľkými príkladmi.

Syntax a parametre príkazu Get-Content

Zjednodušená syntax príkazu Get-Content je…

ako nainštalovať sprievodcu ares na kodi krypton
|_+_|

Get-Content má oveľa viac parametrov. Uviedol som bežne používané parametre.

Použi - Cesta parameter na určenie úplnej cesty () k textovému súboru. Musíte zahrnúť príponu textového súboru (.txt).

The Cesta parameter je na pozícii 0, preto ho nemusíte špecifikovať. Hodnotu môžete zadať hneď po Get-Content. Ak sa chcete dozvedieť viac o parametroch PowerShell, prečítajte si našu príručku – Atribút parametra PowerShell

Príklady príkazov Get-Content

Snímka obrazovky nižšie je zoznam serverov. Ak chcete importovať obsah textového súboru do PowerShell, spustím príkaz uvedený nižšie...

|_+_|

Príkaz zobrazí zoznam serverov v textovom súbore.

Ako používať PowerShell pre každý príkaz s Get-Content

Ako používať PowerShell pre každú slučku s Get-Content

V tejto časti sa dozviete, ako vytvoriť výsledok Získajte obsah do Pre každý Slučka. Potom v rámci Pre každý Slučkový blok, vykonajte špecifické úlohy.

Časť začína diskusiou o syntaxi PowerShell ForEach Loop.

Syntax prostredia PowerShell pre každý príkaz

Príkaz PowerShell ForEach vykoná operáciu proti každej položke v kolekcii vstupných objektov. Na účely tejto príručky sa operácia vykoná s položkami v textovom súbore.

Syntax ForEach Statementu je:

|_+_|

Ako sa očakávalo, syntax bude začínať „ForEach“. Potom nasleduje a v zátvorkách „()“; a nakoniec blok „{}“.

V prvej časti tejto príručky som uviedol príklad, ako importovať obsah textového súboru pomocou Získajte obsah . Tu je príkaz…

|_+_|

Ak to zahrnieme do syntaxe ForEach Statement, ForEach sa aktualizuje, ako je uvedené nižšie:

|_+_|

V aktualizovanej syntaxi príkazu ForEach som nahradil $kolekcia variabilný s Get-Content D:PS-TutorialS ZonesS Zones-Servers.txt príkaz.

Okrem toho môžeme tento príkaz uložiť do $kolekcia variabilný…

|_+_|

Potom môžeme použiť zjednodušenú verziu syntaxe príkazu ForEach…

|_+_|

Ak sa chcete dozvedieť viac o tomto výkonnom príkaze PS, kliknite na PowerShell ForEach: Syntax, Parameters, Príklady .

samsung galaxy s7 stiahnutie firmvéru -

V zostávajúcich podsekciách tejto časti uvediem ďalšie príklady.

Ako iterovať textový súbor s každým príkazom

V tejto podsekcii pridám niektoré príkazy do príkazového bloku príkazu ForEach. Tu sú aktualizované príkazy.

|_+_|

Ak spustím skript v PowerShell ISE, zobrazí sa obsah textového súboru.

V prvom riadku skriptu som použil Get-Content na importovanie obsahu textového súboru do PowerShell; potom som použil príkaz PowerShell ForEach na iteráciu obsahu a jeho zoznam pomocou príkazu write-host $item.

Ako skombinovať PowerShell Get-ChildItem, pre každú slučku a Get-Content

Ak máte v priečinku viacero textových súborov, musíte najprv získať úplnú cestu k textovým súborom. Ak chcete získať úplnú cestu k textovým súborom, potrebujete príkaz Get-ChildItem.

Na ilustráciu som vytvoril dva textové súbory v priečinku. Pozrite si snímku obrazovky nižšie…

Ako skombinovať PowerShell Get-ChildItem, pre každú slučku a Get-Content

Ako som spomenul eelier, prvým krokom je získať cestu ku všetkým textovým súborom v priečinku. Tu je príkaz, ktorý túto úlohu vykonáva…

|_+_|

Príkaz vypíše úplnú cestu k textovým súborom…

Ak však máte v priečinku ďalšie položky, napríklad podpriečinky a iné typy súborov, musíte príkaz vylepšiť tak, aby vracal iba textové súbory…

|_+_| Výsledok príkazu som uložil do premennej, aby som skrátil nasledujúce príkazy.

Teraz, keď máme cesty ku všetkým textovým súborom v priečinku, ďalším krokom je použiť Get-Content na zobrazenie obsahu každého textového súboru. Pretože však existuje viac ako jeden textový súbor, musíme použiť príkaz ForEach.

|_+_|

Tu je výsledok skriptu v PowerShell ISE…

Ako skombinovať PowerShell Get-ChildItem, pre každú slučku a Get-Content

Ako vytvoriť priečinky s obsahom textového súboru

V tejto podsekcii sa dozviete, ako vytvoriť priečinky s obsahom textového súboru.

Aby som to demonštroval, mám textový súbor s menami.

Na importovanie obsahu textového súboru do PowerShellu použijem Get-Content; potom použite blok príkazov ForEach na iteráciu obsahu textových súborov.

Nakoniec v rámci bloku príkazov ForEach použijem ocenenie príkaz na vytvorenie priečinkov s obsahom textového súboru.

Avšak namiesto oddeľovania príkazov, ako sme to robili doteraz, spojím všetky príkazy. Tu je scenár…

|_+_|

V tomto príkaze som použil príkazy príkazového riadka systému Windows, CD a mkdir . Tu je PowerShell verzia príkazu…

|_+_|

A tu je výsledok v PoweShell ISE:

Prípadne, ak nechcete, aby sa zobrazovali informácie o vytvorených priečinkoch, použite výstup z priečinka Nová vec prikázať Out-Null .

Skript bude teraz vyzerať takto...

|_+_|

Ako rozdeliť a potom spojiť obsah textového súboru s príkazom Get-Content a Foreach

Keď som skúmal tento článok, narazil som na toto stackoverflow.com otázka. Osoba, ktorá položila otázku, má textový súbor s nasledujúcimi reťazcami:

|_+_|

Osoba však chce upraviť reťazce tak, aby vyzerali takto:

|_+_|

Aby som túto situáciu zopakoval, vytvoril som textový súbor s pôvodnými reťazcami. Potom som vytvoril krátky skript, ktorý dosiahne požadovaný výsledok.

Tu je scenár.

|_+_|

Prvý a druhý riadok sú pomerne jednoduché. V riadku 1 som uložil cestu k textovému súboru do premennej.

Potom som v riadku 2 použil Získajte obsah na importovanie obsahu textového súboru do prostredia PowerShell a uloženie výsledku do inej premennej.

Nakoniec som v riadkoch 3, 4 a 5 použil výsledok Získajte obsah príkaz v príkaze PowerShell ForEach. Výsledok ForEach Statement som uložil do inej premennej.

Najdôležitejšie z príkazu ForEach je to, čo mám v príkazovom bloku...

|_+_|

Prvá časť príkazu používa metódu PowerShell Split na rozdelenie obsahu textového súboru. Tu je príkaz…

|_+_|

Tento príkaz robí prerušenie reťazcov v textovom súbore na | charakter. Aby sme vám to pomohli pochopiť, tu sú pôvodné reťazce v textovom súbore.

|_+_|

Výsledok príkazu split vytvorí nasledujúce jednotlivé reťazce:

|_+_|

Keď PowerShell split vytvorí jednotlivé reťazce, ako je tento, každá položka je reprezentovaná číslom pozície, ktoré začína od 0 (nula). Takže máte prístup k prvému reťazcu, 80055555 s [0], druhý s [1] atď.

Predtým, ako vysvetlím ďalšiu časť príkazu, pozrime sa na výstup, ktorý chceme dosiahnuť. Tu je…

|_+_|

Ak by sme tento výstup prerušili pomocou PowerShell Split, dosiahneme to...

|_+_|

Ak to porovnáte s výsledkom, keď rozdelíme pôvodný reťazec, všimnete si, že podreťazec na pozícii 4 pôvodného textového súboru ( DCDOCS ) je teraz na pozícii 2. Každý ďalší podreťazec si zachoval svoju pôvodnú pozíciu.

video pozastavené. pokračujte v sledovaní

Tu je znázornená úloha druhého bitu príkazu...

|_+_|

Tento príkaz jednoducho znamená…

|_+_| Na účely ilustrácie som vložil čiarky (,) na oddelenie podreťazcov. Príkaz neobsahuje čiarky.

Zatiaľ som vysvetlil tento príkaz..

|_+_|

Až do tohto bodu…

|_+_|

Posledný bit používa PowerShell Join Operator na vloženie pôvodného znaku | medzi nový reťazec vytvorený týmto príkazom…

|_+_|

V niekoľkých posledných odsekoch som vysvetlil riadok 4 tohto skriptu.

|_+_|

Nakoniec som v riadku 6 poslal výstup nového reťazca uloženého v nový súbor variabilný do Set-Content . Set-Content prepíše pôvodný súbor novým reťazcom.

Toto je skvelý príklad toho, ako môžete skombinovať Get-Content s príkazom PowerShell ForEach!

Ako používať PowerShell pre každú metódu s Get-Content

Ako používať PowerShell pre každú metódu s Get-Content

Metóda ForEach bola predstavená v prostredí PowerShell verzie 4. Táto metóda poskytuje vývojárom skriptov PowerShell ďalší spôsob, ako iterovať obsah textového súboru.

V tejto časti sa s viacerými príkladmi naučíte, ako používať metódu ForEach s Get-Content.

Časť začína syntaxou metódy ForEach.

Syntax PowerShell pre každú metódu

Syntax PowerShell ForEach Method je…

|_+_|

Prístup k metóde ForEach objektu je podobný prístupu k akejkoľvek inej metóde PowerShell. Jediný rozdiel je v tom, že metóda ForEach obsahuje blok {} v rámci bloku ().

at & t aktualizácia Android 5.1.1

Ako skombinovať PowerShell Get-ChildItem, pre každú metódu a Get-Content

V časti ForEach Statement tejto príručky som zdieľal nižšie uvedený skript...

|_+_|

Použitý skript Get-ChildItem ak chcete vrátiť úplnú cestu k textovým súborom v tomto priečinku...

Ako skombinovať PowerShell Get-ChildItem, pre každú metódu a Get-Content

Tu je ekvivalentný skript ForEach Method…

|_+_|

Ako vytvoriť priečinky s obsahom textového súboru pomocou metódy ForEach

Podobne ako v príklade v poslednej podsekcii som použil nižšie uvedený skript v časti ForEach Statement tejto príručky…

|_+_|

Skript použil Get-Content a ForEach Statement na vytvorenie priečinkov pomocou obsahu textového súboru na snímke obrazovky nižšie…

Na rozdiel od príkazu ForEach, ktorý používa príkaz…

|_+_|

PowerShell ForEach Method volá metódu ForEach vo výsledku Get-Content, ako je tento…

|_+_|

Potom do bloku () vložíme blok {} a spustíme Nová vec príkaz. Avšak namiesto použitia $filename premennú, tentoraz používam automatickú premennú $_

|_+_|

Konečná verzia skriptu ForEach Method vyzerá takto...

|_+_|

Tentoraz chcem spustiť príkaz v PowerShell namiesto PowerShell ISE. Takže budem mať celý skript v jednom riadku...

|_+_|

Tu je príkaz v PowerShell a vytvorené priečinky. Priložil som aj snímku obrazovky textového súboru s názvami priečinkov…

Ako vytvoriť priečinky s obsahom textového súboru pomocou metódy ForEach

Ako rozdeliť a potom spojiť obsah textového súboru pomocou metódy Get-Content a Foreach

V časti ForEach Statement tejto príručky som uviedol príklad s týmto stackoverflow.com otázka. Osoba, ktorá položila otázku, chce upraviť nasledujúci reťazec v textovom súbore...

|_+_|

Do tohto…

|_+_|

Na vyriešenie problému som vytvoril tento skript, ktorý používa príkaz Get-Content a PowerShell ForEach…

|_+_|

V tejto časti príručky diskutujeme o tom, ako ju používať Získajte obsah a ForEach Method, tu je ekvivalentný skript s ForEach Method…

|_+_|

Upravené je rovnaké až na to, že v tejto upravenej verzii som nahradil príkaz ForEach metódou ForEach.

Ako používať PowerShell pre cmdlet pre každý objekt s funkciou Get-Content

Ako používať PowerShell pre cmdlet pre každý objekt s funkciou Get-Content

V tejto poslednej časti zopakujem niektoré z príkladov, ktoré som už uviedol v prvých dvoch častiach.

V tejto časti však nahradím príkaz ForEach a/alebo metódu ForEach cmdlet ForEach-Object.

Časť začína syntaxou rutiny ForEach-Object Cmdlet

Syntax rutiny ForEach-Object

Existujú dve syntaxe ForEach-Object. Tu sú ich zjednodušené verzie:

|_+_| |_+_|

Syntaxe ForEach-Object sa môžu zdať zložité. Jeho použitie je však veľmi jednoduché. V tejto príručke sa zameriame na InputObject parameter.

Toto je parameter, ktorý dodáva vstup do ForEach-Object. navyše InputObject možno poslať aj potrubím...

|_+_|

Ako vytvoriť priečinky s obsahom textového súboru pomocou cmdlet ForEach-Object

V prvej a druhej časti tejto príručky som vytvoril nasledujúce skripty.

ukázať iphone vo vyhľadávači
|_+_| |_+_|

Prvý skript používa príkaz Get-Content ForEach na vytvorenie priečinkov pomocou obsahu textového súboru na snímke obrazovky nižšie…

Okrem toho druhý skript používa metódu Get-Content ForEach na vykonanie rovnakej úlohy.

Ak chcete použiť rutinu ForEach-Object namiesto príkazu ForEach alebo metódy ForEach, skript sa upraví, ako je uvedené nižšie…

|_+_|

Ako rozdeliť a potom spojiť obsah textového súboru s cmdlet Get-Content a ForEach-Object

V častiach ForEach Statement a ForEach Method som vytvoril nasledujúce skripty, aby som to vyriešil stackoverflow.com otázka.

|_+_| |_+_|

Tu je verzia rutiny ForEach-Object toho istého skriptu:

|_+_|

Práca s PowerShell Get-Content and ForEach: Záverečné myšlienky

Práca s PowerShell Get-Content and ForEach: Záverečné myšlienky

Témy zdieľané v tejto príručke môžu byť mätúce, najmä preto, že pokrýva 3 varianty PowerShell ForEach. Na uľahčenie pochopenia uvádzame tabuľku, v ktorej sú zhrnuté pojmy zdieľané v tomto článku.

OtázkaPre každý výpisPre každú metóduRutina cmdlet pre každý objekt
Prijíma vstup z Get-Content
Ako prijíma vstup z Get-Content?Pipeline | alebo v bloku podmienok ForEach StatementMetóda PowerShell .()Potrubie | alebo cez InputObject parameter
Ako transformuje vstup z Get-Content?Vytvorí dočasnú premennú, ktorá predstavuje každý objekt v kolekciiPredstavuje každý objekt v kolekcii pomocou premennej automatického potrubia PowerShell, $_Predstavuje každý objekt v kolekcii pomocou premennej automatického potrubia PowerShell, $_
Ukážkový skript?ForEach ($filename v Get-Content D:PS-Tutoriallist.txt) Out-Null
(Získajte obsah D:PS-Tutoriallist.txt).ForEach(
Nová-položka -Cesta D:PS-Výukový program -Názov $_ -Adresár typu položky
)
Získať obsah D:PS-Tutoriallist.txt | Pre každý objekt
Nová-položka -Cesta D:PS-Výukový program -Názov $_ -Adresár typu položky

To je všetko – naša aktualizovaná príručka o tom, ako používať PowerShell Get-Content a ForEach! Dúfam, že vám to pomohlo?

Ak vám to pomohlo, zahlasujte Áno na otázku Bol tento príspevok užitočná nižšie.

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

Nakoniec, ak chcete získať viac zón PowerShell tech S, navštívte našu stránku sprievodcu Windows PowerShell ako na to. Veľmi užitočná vám môže byť aj naša stránka Práca z domovskej stránky.

Referencie a ďalšie čítanie

  1. Pre každý objekt
  2. Získajte obsah
  3. about_Foreach