Powershell Get-Contentin ja Foreachin käyttäminen esimerkkien avulla
Tämä S-alue opettaa sinulle, kuinka PowerShell Get-Content yhdistetään ForEach-silmukan kanssa. Voit käyttää Get-Content-toimintoa listataksesi tekstitiedoston sisällön ja toistaa sitten tekstitiedoston sisällön ForEach-käskyllä.
PowerShell ForEachista on 3 muunnelmaa. Siellä on ForEach-lauseke ja ForEach-menetelmä.
Lisäksi siellä on ForEach-Object Cmdlet.
Tämä opas aloittaa käsittelemällä Get-Content-komentoa – sen syntaksia, parametreja ja joitain esimerkkejä.
Tämän jälkeen oppaan muissa osissa opit käyttämään PowerShell ForEachin ja Get-Contentin kolmea versiota. Käsittelen kunkin ForEachin muunnelman syntaksia.
Lopuksi näytän useita esimerkkejä PowerShell ForEach -muunnelman ja Get-Contentin käytöstä.
Selaa viestien aiheita
- Get-Content-komento: Syntaksi, Parametrit, Esimerkit
- PowerShell ForEach -lausunnon käyttäminen Get-Contentin kanssa
- PowerShellin käyttäminen jokaiselle menetelmälle Get-Contentin kanssa
- PowerShell ForEach-Object -cmdletin käyttäminen Get-Contentin kanssa
- Työskentely PowerShell Get-Content And ForEach -sovelluksen kanssa: Viimeiset ajatukset
- Viitteet ja lisätietoa
Get-Content-komento: Syntaksi, Parametrit, Esimerkit
Kuten johdannossani mainitsin, sinun on ensin tuotava tekstitiedoston sisältö PowerShelliin, ennen kuin voit käyttää PowerShell ForEach -ohjelmaa tiedoston sisällön iterointiin.
Get-Content Cmdlet-komentoa käytetään tekstitiedoston sisällön luetteloimiseen tai tuomiseen PowerShelliin.
Tässä osiossa tarkastelemme Get-Contentin syntaksia ja parametreja. Päätän osion muutamalla esimerkillä.
Get-Content-komennon syntaksi ja parametrit
Get-Content-komennon yksinkertaistettu syntaksi on…
kuinka saada kodi älytelevisiooni|_+_|
Get-Contentissa on paljon enemmän parametreja. Määritin yleisesti käytetyt parametrit.
Käytä - Polku parametri määrittääksesi koko polun () tekstitiedostoon. Sinun on sisällytettävä tekstitiedoston tunniste (.txt).
The Polku parametri on paikassa 0, joten sinun ei tarvitse määrittää sitä. Voit syöttää arvon heti Get-Content jälkeen. Lue lisää PowerShell-parametreista lukemalla oppaamme – PowerShell-parametrien attribuuttiEsimerkkejä Get-Content-komennoista
Alla oleva kuvakaappaus on luettelo palvelimista. Tuodaksesi tekstitiedoston sisällön PowerShelliin, suoritan alla olevan komennon…
|_+_|Komento näyttää luettelon palvelimista tekstitiedostossa.
PowerShell ForEach -lausunnon käyttäminen Get-Contentin kanssa
Tässä osiossa opit laskemaan tuloksen Hanki-sisältö sisään Jokaiselle Silmukka. Sitten sisällä Jokaiselle Silmukkalohko, suorita tiettyjä tehtäviä.
Osio alkaa keskustelemalla PowerShell ForEach Loopin syntaksista.
PowerShell Foreach -lausekkeen syntaksi
PowerShell ForEach -lauseke suorittaa toiminnon jokaiselle syöteobjektien kokoelman kohteelle. Tässä oppaassa toiminto suoritetaan tekstitiedoston kohteita vastaan.
ForEach-lauseen syntaksi on:
|_+_|Kuten odotettiin, syntaksi alkaa sanoilla 'ForEach'. Sen jälkeen on hakasulkeet '()'; ja lopuksi '{}' -lohko.
Tämän oppaan ensimmäisessä osassa annoin esimerkin tekstitiedoston sisällön tuomisesta Hanki-sisältö . Tässä on käsky…
|_+_|Jos sisällytämme tämän ForEach-lausekkeen syntaksiin, ForEach-lauseke päivitetään alla olevan kuvan mukaisesti:
|_+_|Päivitetyssä ForEach-lausesyntaksissa korvasin $kokoelma muuttuja kanssa Get-Content D:PS-TutorialS ZonesS Zones-Servers.txt komento.
Lisäksi voimme tallentaa tämän komennon tiedostoon $kokoelma muuttuva…
|_+_|Sitten voimme käyttää ForEach-lauseen syntaksin yksinkertaistettua versiota…
|_+_|Saat lisätietoja tästä tehokkaasta PS-lauseesta napsauttamalla PowerShell ForEach: Syntax, Parameters, Examples .
Tämän osion muissa alaosissa annan lisää esimerkkejä.
Tekstitiedoston toistaminen ForEach-lauseella
Tässä alaosassa lisään joitain komentoja ForEach-käskyn komentolohkoon. Tässä on päivitetyt komennot.
|_+_|Jos suoritan komentosarjan PowerShell ISE:ssä, se näyttää tekstitiedoston sisällön.
Komentosarjan ensimmäisellä rivillä käytin Get-Content-toimintoa tuodakseni tekstitiedoston sisällön PowerShelliin; sitten käytin PowerShell ForEach -käskyä sisällön iterointiin ja luetteloimiseen komennolla write-host $item.Kuinka yhdistää PowerShell Get-ChildItem, Foreach Loop ja Get-Content
Jos kansiossa on useita tekstitiedostoja, sinun on ensin hankittava tekstitiedostojen koko polku. Saadaksesi koko tekstitiedostojen polun, tarvitset Get-ChildItem -komennon.
Tämän havainnollistamiseksi loin kaksi tekstitiedostoa kansioon. Katso alla oleva kuvakaappaus…
Kuten eelier mainitsin, ensimmäinen askel on saada polku kaikkiin kansion tekstitiedostoihin. Tässä on komento, joka tekee tämän työn…
|_+_|Komento listaa koko polun tekstitiedostoihin…
Jos kansiossa on kuitenkin muita kohteita, esimerkiksi alikansioita ja muun tyyppisiä tiedostoja, sinun on parannettava komentoa palauttamaan vain tekstitiedostot…
|_+_| Tallensin komennon tuloksen muuttujaksi lyhentääkseni seuraavia komentoja.Nyt kun meillä on polut kaikkiin kansion tekstitiedostoihin, seuraava vaihe on käyttää Get-Content -toimintoa jokaisen tekstitiedoston sisällön luetteloimiseen. Koska tekstitiedostoja on kuitenkin enemmän kuin yksi, meidän on käytettävä ForEach-lausetta.
|_+_|Tässä on PowerShell ISE:n komentosarjan tulos…
Kuinka luoda kansioita tekstitiedoston sisällöllä
Tässä alaosiossa opit luomaan kansioita tekstitiedoston sisällöstä.
Tämän osoittamiseksi minulla on tekstitiedosto nimillä.
Käytän Get-Content-ohjelmaa tuodakseni tekstitiedoston sisällön PowerShelliin; Käytä sitten ForEach-lauseketta iteroidaksesi tekstitiedostojen sisältöä.
miten löytää Steam-kansio
Lopuksi käytän ForEach-lauselohkossa arvostusta -komento luodaksesi kansioita tekstitiedoston sisällöllä.
Sen sijaan, että erottaisin komennot kuten olemme tehneet tähän mennessä, yhdistän kaikki komennot. Tässä on käsikirjoitus…
|_+_|Tässä komennossa käytin Windowsin komentokehotteen komentoja, CD ja mkdir . Tässä on komennon PowerShell-versio…
|_+_|Ja tässä on tulos PoweShell ISE:ssä:
Vaihtoehtoisesti, jos et halua, että luotujen kansioiden tiedot näkyvät, kirjoita tuloste Uusi tuote komentaa Out-Null .
Käsikirjoitus näyttää nyt tältä…
kuinka lisätä peli nvidia geforce -kokemukseen|_+_|
Jaa ja liitä sitten tekstitiedoston sisältö Get-Contentilla ja Foreach-lausekkeella
Kun tutkin tätä artikkelia, törmäsin tähän stackoverflow.com kysymys. Kysymyksen esittäneellä henkilöllä on tekstitiedosto, jossa on seuraavat merkkijonot:
|_+_|Henkilö haluaa kuitenkin muokata merkkijonoja tältä:
|_+_|Tämän tilanteen toistamiseksi loin tekstitiedoston alkuperäisillä merkkijonoilla. Sitten loin lyhyen käsikirjoituksen, joka saavuttaa vaaditun tuloksen.
Tässä on käsikirjoitus.
|_+_|Ensimmäinen ja toinen rivi ovat suhteellisen yksinkertaisia. Rivillä 1 tallensin tekstitiedoston polun muuttujaan.
Sitten rivillä 2 käytin Hanki-sisältö tuodaksesi tekstitiedoston sisällön PowerShelliin ja tallentaaksesi tuloksen toiseen muuttujaan.
Lopuksi riveillä 3, 4 ja 5 käytin tulosta Hanki-sisältö -komento PowerShell ForEach -lauseessa. Tallensin ForEach-lauseen tuloksen toiseen muuttujaan.
Tärkein ForEach-lauseesta on se, mitä minulla on komentolohkossa…
|_+_|Komennon ensimmäinen osa käyttää PowerShell Split Methodia rikkomaan tekstitiedoston sisällön. Tässä on käsky…
|_+_|Tämä komento katkaisee tekstitiedoston merkkijonot | merkki. Tässä on tekstitiedoston alkuperäiset merkkijonot helpottaaksemme sinua ymmärtämään tätä.
|_+_|Split-komennon tulos luo seuraavat yksittäiset merkkijonot:
|_+_|Kun PowerShell-jako luo yksittäisiä merkkijonoja tällä tavalla, jokaista kohdetta edustaa paikkanumero, joka alkaa 0:sta (nolla). Joten voit käyttää ensimmäistä merkkijonoa, 80055555 [0]:lla, toinen [1]:llä ja niin edelleen.
Ennen kuin selitän komennon seuraavan osan, katsotaanpa tulos, jonka haluamme saavuttaa. Tässä se on…
|_+_|Jos katkaisimme tämän lähdön PowerShell Splitillä, saavutamme tämän…
|_+_|Jos vertaat tätä tulokseen, kun jaamme alkuperäisen merkkijonon, huomaat, että alimerkkijono alkuperäisen tekstitiedoston kohdassa 4 ( DCDOCS ) on nyt paikassa 2. Jokainen toinen osamerkkijono säilytti alkuperäisen paikkansa.
Tässä näkyy komennon toisen bitin tehtävä…
|_+_|Tämä komento tarkoittaa yksinkertaisesti…
|_+_| Lisäsin koomat (,) erottamaan osamerkkijonot havainnollistamistarkoituksessa. Komento ei sisällä koomat.Tähän mennessä olen selittänyt tämän komennon..
|_+_|Tähän saakka…
|_+_|Viimeinen bitti käyttää PowerShell Join Operatoria lisäämään alkuperäisen merkin |, tämän komennon luoman uuden merkkijonon väliin…
|_+_|Muutamassa viimeisessä kappaleessa olen selittänyt tämän käsikirjoituksen rivin 4.
|_+_|Lopuksi rivillä 6 putostin uuden tallennetun merkkijonon tulosteen uusi tiedosto muuttuja osaksi Sarja-sisältö . Sarja-sisältö korvaa alkuperäisen tiedoston uudella merkkijonolla.
Tämä on loistava esimerkki siitä, kuinka voit yhdistää Get-Contentin PowerShell ForEach -lauseeseen!
PowerShellin käyttäminen jokaiselle menetelmälle Get-Contentin kanssa
ForEach-menetelmä otettiin käyttöön PowerShell-versiossa 4. Tämä menetelmä antaa PowerShell-skriptien kehittäjille toisen tavan iteroida tekstitiedoston sisältöä.
Tässä osiossa opit käyttämään ForEach-menetelmää Get-Contentin kanssa useiden esimerkkien avulla.
Osio alkaa ForEach-menetelmän syntaksilla.
PowerShellin syntaksi jokaiselle menetelmälle
PowerShell ForEach Methodin syntaksi on…
|_+_|Objektin ForEach-menetelmän käyttäminen on samanlaista kuin minkä tahansa muun PowerShell-menetelmän käyttäminen. Ainoa ero on, että ForEach Method sisältää {}-lohkon ()-lohkossa.
Kuinka yhdistää PowerShell Get-ChildItem, Forach Method ja Get-Content
Tämän oppaan ForEach Statement -osiossa jaoin alla olevan käsikirjoituksen…
|_+_|Käytetty käsikirjoitus Get-ChildItem palauttaaksesi koko polun tämän kansion tekstitiedostoihin…
Tässä on ForEach Methodia vastaava skripti…
|_+_|Kuinka luoda kansioita tekstitiedoston sisällöllä jokaisella menetelmällä
Kuten edellisessä alajaksossa, käytin alla olevaa komentosarjaa tämän oppaan ForEach Statement -osiossa…
|_+_|Skripti käytti Get-Content- ja ForEach-lauseketta kansioiden luomiseen käyttämällä alla olevan kuvakaappauksen tekstitiedoston sisältöä…
Toisin kuin ForEach-lauseessa, joka käyttää komentoa…
|_+_|PowerShell ForEach Method kutsuu ForEach-menetelmää Get-Contentin tuloksessa näin…
|_+_|Sitten lisäämme ()-lohkoon {}-lohkon ja suoritamme Uusi tuote komento. Kuitenkin sen sijaan, että käytät $tiedostonimi muuttuja, tällä kertaa käytän automaattista muuttujaa $_
|_+_|Skriptin lopullinen ForEach Method -versio näyttää tältä…
|_+_|Tällä kertaa haluan suorittaa komennon PowerShellissä PowerShell ISE:n sijaan. Joten minulla on koko käsikirjoitus yhdellä rivillä…
|_+_|Tässä on PowerShellin komento ja luodut kansiot. Olen myös lisännyt kuvakaappauksen tekstitiedostosta kansioiden nimien kanssa…
google-tili keskeyttää jatkuvasti
Jaa ja liitä sitten tekstitiedoston sisältö Get-Contentilla ja jokaisella menetelmällä
Tämän oppaan ForEach Statement -osiossa annoin esimerkin tästä stackoverflow.com kysymys. Kysymyksen esittänyt henkilö haluaa muokata seuraavaa merkkijonoa tekstitiedostossa…
|_+_|Tähän…
|_+_|Korjatakseni ongelman loin tämän komentosarjan, joka käyttää Get-Content- ja PowerShell ForEach -käskyä…
|_+_|Tässä oppaan osassa keskustelemme käytöstä Hanki-sisältö ja ForEach Method, tässä on vastaava skripti ForEach Methodilla…
|_+_|Muokattu on sama paitsi että tässä muokatussa versiossa korvasin ForEach-lausekkeen ForEach Methodilla.
PowerShell ForEach-Object -cmdletin käyttäminen Get-Contentin kanssa
Tässä viimeisessä osassa toistan joitain esimerkkejä, jotka olen jo antanut kahdessa ensimmäisessä osassa.
Kuitenkin tässä osiossa korvaan ForEach-lauseen ja/tai ForEach Method -käskyn ForEach-Object Cmdletillä.
Osio alkaa ForEach-Object Cmdletin syntaksilla
ForEach-Object Cmdletin syntaksi
ForEach-Objectissa on kaksi syntaksia. Tässä on niiden yksinkertaistetut versiot:
miten ehdottaa ystäviä Facebookissa|_+_| |_+_|
ForEach-Objectin syntaksit voivat näyttää monimutkaisilta. Se on kuitenkin erittäin helppokäyttöinen. Tässä oppaassa keskitymme InputObject parametri.
Tämä on parametri, joka syöttää syötteen ForEach-Objectiin. Lisäksi, InputObject voidaan lähettää myös putkeen…
|_+_|Kuinka luoda kansioita tekstitiedoston sisällöllä ForEach-Object Cmdletillä
Tämän oppaan ensimmäisessä ja toisessa osassa loin seuraavat komentosarjat.
|_+_| |_+_|Ensimmäinen komentosarja käyttää Get-Content ForEach -lauseketta kansioiden luomiseen käyttämällä alla olevan kuvakaappauksen tekstitiedoston sisältöä…
Lisäksi toinen komentosarja käyttää Get-Content ForEach -menetelmää saman tehtävän suorittamiseen.
Jos haluat käyttää ForEach-Object Cmdlet -komentoa ForEach-lausekkeen tai ForEach Methodin sijaan, komentosarjaa muokataan alla olevan kuvan mukaisesti...
|_+_|Jakaminen ja liittäminen sitten tekstitiedoston sisältöön Get-Content- ja ForEach-Object-cmdletillä
Loin ForEach Statement- ja ForEach Method -osioon seuraavat komentosarjat tämän korjaamiseksi stackoverflow.com kysymys.
|_+_| |_+_|Tässä on saman skriptin ForEach-Object Cmdlet -versio:
|_+_|Työskentely PowerShell Get-Content And ForEach -sovelluksen kanssa: Viimeiset ajatukset
Tässä oppaassa jaetut aiheet voivat olla hämmentäviä, etenkin koska se kattoi kolme PowerShell ForEach -versiota. Jotta se olisi helppo ymmärtää, tässä on taulukko, jossa on yhteenveto tässä artikkelissa jaetuista käsitteistä.
| Kysymys | Jokaiselle lausunnolle | Jokaiselle menetelmälle | ForEach-Object Cmdlet |
|---|---|---|---|
| Hyväksyy syötteen Get-Contentista | ✓ | ✓ | ✓ |
| Kuinka se hyväksyy syötteen Get-Contentilta? | Pipeline | tai ForEach Statement -ehtolohkossa | PowerShell-menetelmä .() | Putkilinja | tai kautta InputObject parametri |
| Miten se muuttaa Get-Content-syötteen? | Luo ajallisen muuttujan, joka edustaa jokaista kokoelman objektia | Edustaa jokaista kokoelman objektia PowerShell-automaattisella liukuhihnamuuttujalla $_ | Edustaa jokaista kokoelman objektia PowerShell-automaattisella liukuhihnamuuttujalla $_ |
| Esimerkkiskripti? | ForEach ($tiedostonimi kohdassa Get-Content D:PS-Tutoriallist.txt) Out-Null | (Get-Content D:PS-Tutoriallist.txt).ForEach( Uusi tuote -Polku D:PS-Opetusohjelma -Nimi $_ -Tuotetyyppihakemisto ) | Get-Content D:PS-Tutoriallist.txt | Jokaiselle esineelle Uusi tuote -Polku D:PS-Opetusohjelma -Nimi $_ -Tuotetyyppihakemisto |
Siinä se – päivitetty oppaamme PowerShell Get-Contentin ja ForEachin käytöstä! Toivottavasti siitä oli apua?
Jos koit sen hyödylliseksi, äänestä ystävällisesti Joo Oliko tämä viesti Hyödyllinen kysymys alla.
Vaihtoehtoisesti voit esittää kysymyksen, jättää kommentin tai antaa lisää palautetta tämän sivun lopusta löytyvällä Vastaa -lomakkeella.
Lopuksi lisää PowerShell tech S Zones -alueita Windows PowerShell -ohjesivullamme. Saatat myös pitää Work from Home -sivustamme erittäin hyödyllisenä.


