Kā izmantot Powershell Get-Content un katru ar piemēriem

2021. gada 17. jūnijs 16866 Skati PowerShell Try Catch piemēri

Šī S zona māca, kā apvienot PowerShell Get-Content ar ForEach cilpu. Varat izmantot Get-Content, lai uzskaitītu teksta faila saturu, pēc tam izmantojiet ForEach priekšrakstu, lai atkārtotu teksta faila saturu.





Ir 3 PowerShell ForEach varianti. Ir ForEach paziņojums un ForEach metode.
Turklāt ir ForEach-Object cmdlet.



Šīs rokasgrāmatas sākumā tiek apspriesta komanda Get-Content — tās sintakse, parametri un daži piemēri.

Pēc tam atlikušajās rokasgrāmatas daļās jūs uzzināsit, kā izmantot katru no 3 PowerShell ForEach un Get-Content variantiem. Katram ForEach variantam es apspriedīšu tā sintaksi.



Visbeidzot, es parādīšu vairākus piemērus, kā izmantot PowerShell ForEach variantu un Get-Content.



Pārlūkojiet ziņu tēmas

Get-Content komanda: sintakse, parametri, piemēri

Get-Content komanda: sintakse, parametri, piemēri

Kā jau minēju savā ievadā, pirms varat izmantot PowerShell ForEach faila satura atkārtošanai, vispirms ir jāimportē teksta faila saturs programmā PowerShell.



Get-Content cmdlet tiek izmantots, lai uzskaitītu vai importētu teksta faila saturu programmā PowerShell.



Šajā sadaļā mēs apskatīsim Get-Content sintaksi un parametrus. Sadaļu beigšu ar dažiem piemēriem.

Komandas Get-Content sintakse un parametri

Komandas Get-Content vienkāršotā sintakse ir…

|_+_|

Get-Content ir daudz vairāk parametru. Norādīju biežāk lietotos parametrus.

Izmantojiet - Ceļš parametrs, lai norādītu pilnu ceļu () uz teksta failu. Ir jāiekļauj teksta faila paplašinājums (.txt).

The Ceļš parametrs atrodas 0 pozīcijā, tāpēc tas nav jānorāda. Varat vienkārši ievadīt vērtību tūlīt pēc Get-Content. Lai uzzinātu vairāk par PowerShell parametriem, izlasiet mūsu rokasgrāmatu — PowerShell parametru parametru atribūts

Get-Content komandu piemēri

Zemāk redzamais ekrānuzņēmums ir serveru saraksts. Lai importētu teksta faila saturu programmā PowerShell, es izpildīšu tālāk norādīto komandu…

|_+_|

Komanda parāda serveru sarakstu teksta failā.

Kā lietot PowerShell ForEach paziņojumu ar Get-Content

Kā lietot PowerShell ForEach Loop ar Get-Content

Šajā sadaļā jūs uzzināsit, kā norādīt rezultātu Get-Content iekšā Katram Cilpa. Pēc tam ietvaros Katram Cilpas bloks, veikt konkrētus uzdevumus.

Sadaļa sākas ar PowerShell ForEach Loop sintakse.

PowerShell katra paziņojuma sintakse

PowerShell ForEach paziņojums veic darbību pret katru ievades objektu kolekcijas vienumu. Šīs rokasgrāmatas vajadzībām darbība tiks veikta pret vienumiem teksta failā.

ForEach paziņojuma sintakse ir:

|_+_|

Kā paredzēts, sintakse sāksies ar “ForEach”. Pēc tam tai seko a ar iekavām “()”; un visbeidzot bloku “{}”.

Šīs rokasgrāmatas pirmajā sadaļā es sniedzu piemēru, kā importēt teksta faila saturu ar Get-Content . Šeit ir pavēle…

|_+_|

Ja mēs to iekļaujam ForEach paziņojuma sintaksē, ForEach priekšraksts tiks atjaunināts, kā parādīts tālāk:

|_+_|

Atjauninātajā ForEach priekšraksta sintaksē es aizstāju $kolekcija mainīgs ar Get-Content D:PS-TutorialS ZonesS Zones-Servers.txt komandu.

Turklāt mēs varam saglabāt šo komandu mapē $kolekcija mainīgs…

|_+_|

Pēc tam mēs varam izmantot ForEach priekšraksta sintakses vienkāršoto versiju…

|_+_|

Lai uzzinātu vairāk par šo jaudīgo PS paziņojumu, noklikšķiniet uz PowerShell ForEach: Sintakse, parametri, piemēri.

Pārējās šīs sadaļas apakšnodaļās es sniegšu vairāk piemēru.

Kā atkārtot teksta failu, izmantojot ForEach paziņojumu

Šajā apakšsadaļā es pievienošu dažas komandas priekšraksta ForEach komandu blokam. Šeit ir atjauninātās komandas.

|_+_|

Ja es palaižu skriptu programmā PowerShell ISE, tas parāda teksta faila saturu.

Skripta pirmajā rindā es izmantoju Get-Content, lai importētu teksta faila saturu programmā PowerShell; tad es izmantoju PowerShell ForEach priekšrakstu, lai atkārtotu saturu un uzskaitītu tos ar komandu write-host $item.

Kā apvienot PowerShell Get-ChildItem, ForEach Loop un Get-Content

Ja mapē ir vairāki teksta faili, vispirms ir jāiegūst pilns ceļš uz teksta failiem. Lai iegūtu pilnu teksta failu ceļu, ir nepieciešama komanda Get-ChildItem.

Lai to ilustrētu, es izveidoju divus teksta failus mapē. Skatiet zemāk redzamo ekrānuzņēmumu…

Kā apvienot PowerShell Get-ChildItem, ForEach Loop un Get-Content

Kā jau minēju eelier, pirmais solis ir iegūt ceļu uz visiem teksta failiem mapē. Šeit ir komanda, kas veic šo darbu…

|_+_|

Komandā ir norādīts pilns ceļš uz teksta failiem…

Tomēr, ja mapē ir citi vienumi, piemēram, apakšmapes un cita veida faili, jums ir jāuzlabo komanda, lai atgrieztu tikai teksta failus...

|_+_| Es saglabāju komandas rezultātu mainīgajā, lai saīsinātu nākamās komandas.

Tagad, kad mums ir ceļi uz visiem teksta failiem mapē, nākamais solis ir izmantot Get-Content, lai uzskaitītu katra teksta faila saturu. Tomēr, tā kā ir vairāk nekā viens teksta fails, mums ir jāizmanto ForEach priekšraksts.

|_+_|

Šeit ir PowerShell ISE skripta rezultāts…

Kā apvienot PowerShell Get-ChildItem, ForEach Loop un Get-Content

Kā izveidot mapes ar teksta faila saturu

Šajā apakšsadaļā jūs uzzināsit, kā izveidot mapes ar teksta faila saturu.

Lai to parādītu, man ir teksta fails ar nosaukumiem.

Es izmantošu Get-Content, lai importētu teksta faila saturu programmā PowerShell; pēc tam izmantojiet ForEach priekšrakstu bloku, lai atkārtotu teksta failu saturu.

Visbeidzot, ForEach priekšrakstu blokā es izmantošu atzinību komandu, lai izveidotu mapes ar teksta faila saturu.

Tomēr tā vietā, lai atdalītu komandas, kā mēs to darījām līdz šim, es apvienošu visas komandas. Šeit ir skripts…

|_+_|

Šajā komandā es izmantoju Windows komandu uzvednes komandas, CD un mkdir . Šeit ir komandas PowerShell versija…

|_+_|

Un šeit ir rezultāts PoweShell ISE:

Alternatīvi, ja nevēlaties, lai tiktu rādīta informācija par izveidotajām mapēm, ievadiet izvadi Jaunums komanda uz Out-Null .

Skripts tagad izskatīsies šādi…

|_+_|

Kā sadalīt un pēc tam pievienot teksta faila saturu, izmantojot Get-Content un katru paziņojumu

Kamēr es pētīju šo rakstu, es saskāros ar šo stackoverflow.com jautājums. Personai, kas uzdeva jautājumu, ir teksta fails ar šādām virknēm:

|_+_|

Tomēr persona vēlas pārveidot virknes, lai tās izskatītos šādi:

|_+_|

Lai atkārtotu šo situāciju, es izveidoju teksta failu ar sākotnējām virknēm. Pēc tam es izveidoju īsu skriptu, kas sasniegs vajadzīgo rezultātu.

Šeit ir skripts.

|_+_|

Pirmā un otrā rinda ir samērā vienkārša. 1. rindā es saglabāju teksta faila ceļu uz mainīgo.

Tad 2. rindā es izmantoju Get-Content lai importētu teksta faila saturu programmā PowerShell un saglabātu rezultātu citā mainīgajā.

Visbeidzot, 3., 4. un 5. rindā es izmantoju rezultātu Get-Content komandu PowerShell ForEach paziņojumā. Es saglabāju ForEach paziņojuma rezultātu citā mainīgajā.

Vissvarīgākais no ForEach paziņojuma ir tas, kas man ir komandu blokā…

|_+_|

Komandas pirmajā daļā tiek izmantota PowerShell sadalīšanas metode, lai izjauktu teksta faila saturu. Šeit ir pavēle…

|_+_|

Šī komanda pārtrauc virknes teksta failā pie | raksturs. Lai palīdzētu jums ar to saistīties, šeit ir teksta faila sākotnējās virknes.

|_+_|

Sadalīšanas komandas rezultāts izveido šādas atsevišķas virknes:

|_+_|

Kad PowerShell sadalīšana izveido atsevišķas virknes, kā šis, katrs vienums tiek attēlots ar pozīcijas numuru, sākot no 0 (nulles). Tātad, jūs varat piekļūt pirmajai virknei, 80055555 ar [0], otrā ar [1] un tā tālāk.

Pirms es paskaidrošu nākamo komandas daļu, apskatīsim rezultātu, kuru vēlamies sasniegt. Te tas ir…

|_+_|

Ja mēs izjauktu šo izvadi, izmantojot PowerShell Split, mēs to sasniegsim…

|_+_|

Ja salīdzina to ar rezultātu, kad mēs sadalām sākotnējo virkni, pamanīsit, ka apakšvirkne sākotnējā teksta faila 4. pozīcijā ( DCDOCS ) tagad atrodas 2. pozīcijā. Katra otrā apakšvirkne saglabāja savu sākotnējo pozīciju.

Šeit tiek parādīts komandas otrā bita darbs…

|_+_|

Šī komanda vienkārši nozīmē…

|_+_| Es iekļāvu komatus (,), lai ilustrācijas nolūkos atdalītu apakšvirknes. Komanda neietver komas.

Līdz šim esmu izskaidrojis šo komandu.

|_+_|

Līdz šim…

|_+_|

Pēdējais bits izmanto PowerShell Join Operator, lai ievietotu sākotnējo rakstzīmi | starp jauno virkni, kas izveidota ar šo komandu…

|_+_|

Dažās pēdējās rindkopās esmu izskaidrojis šī skripta 4. rindiņu.

|_+_|

Visbeidzot, 6. rindā es ievadīju jaunās saglabātās virknes izvadi jauns fails mainīgs vērā Komplekts-Saturs . Komplekts-Saturs pārraksta sākotnējo failu ar jauno virkni.

Šis ir lielisks piemērs tam, kā varat apvienot Get-Content ar PowerShell ForEach paziņojumu!

Kā izmantot PowerShell katrai metodei ar Get-Content

Kā izmantot PowerShell katrai metodei ar Get-Content

ForEach metode tika ieviesta PowerShell 4. versijā. Šī metode sniedz PowerShell skriptu izstrādātājiem citu veidu, kā atkārtot teksta faila saturu.

Šajā sadaļā jūs uzzināsit, kā izmantot ForEach metodi ar Get-Content ar vairākiem piemēriem.

Sadaļa sākas ar ForEach metodes sintaksi.

PowerShell sintakse katrai metodei

PowerShell ForEach metodes sintakse ir…

android wifi palīdz izslēgt
|_+_|

Piekļuve objekta ForEach metodei ir līdzīga jebkurai citai PowerShell metodei. Vienīgā atšķirība ir tā, ka ForEach metode ietver {} bloku () blokā.

Kā apvienot PowerShell Get-ChildItem, katrai metodei un Get-Content

Šīs rokasgrāmatas sadaļā ForEach paziņojums es kopīgoju tālāk norādīto skriptu…

|_+_|

Izmantotais skripts Get-ChildItem lai atgrieztu pilnu ceļu uz teksta failiem šajā mapē...

Kā apvienot PowerShell Get-ChildItem, katrai metodei un Get-Content

Šeit ir ForEach metodes ekvivalentais skripts…

|_+_|

Kā izveidot mapes ar teksta faila saturu, izmantojot katru metodi

Līdzīgi kā piemērā pēdējā apakšsadaļā, es izmantoju tālāk norādīto skriptu šīs rokasgrāmatas sadaļā ForEach Statement…

|_+_|

Skripts izmantoja Get-Content un ForEach Statement, lai izveidotu mapes, izmantojot teksta faila saturu zemāk esošajā ekrānuzņēmumā…

Atšķirībā no ForEach paziņojuma, kas izmanto komandu…

|_+_|

PowerShell ForEach Method izsauc ForEach metodi Get-Content rezultātos, piemēram, šis…

|_+_|

Pēc tam () blokā mēs ievietojam {} bloku un palaižam Jaunums komandu. Tomēr tā vietā, lai izmantotu $faila nosaukums mainīgais, šoreiz es izmantoju $_ automātisko mainīgo

|_+_|

Skripta galīgā ForEach Method versija izskatās šādi…

|_+_|

Šoreiz es vēlos palaist komandu programmā PowerShell, nevis PowerShell ISE. Tātad, man būs viss skripts vienā rindā…

|_+_|

Šeit ir PowerShell komanda un izveidotās mapes. Esmu iekļāvis arī teksta faila ekrānuzņēmumu ar mapju nosaukumiem…

Kā izveidot mapes ar teksta faila saturu, izmantojot katru metodi

Kā sadalīt un pēc tam pievienot teksta faila saturu, izmantojot Get-Content un katru metodi

Šīs rokasgrāmatas sadaļā ForEach paziņojums es sniedzu piemēru stackoverflow.com jautājums. Persona, kas uzdeva jautājumu, vēlas modificēt šādu virkni teksta failā...

|_+_|

Uz šo…

|_+_|

Lai atrisinātu problēmu, es izveidoju šo skriptu, kas izmanto Get-Content un PowerShell ForEach paziņojumu…

|_+_|

Šajā rokasgrāmatas sadaļā mēs runājam par to, kā to izmantot Get-Content un ForEach Method, šeit ir līdzvērtīgs skripts ar ForEach metodi…

|_+_|

Modificētais ir tāds pats, izņemot to, ka šajā modificētajā versijā es aizstāju ForEach paziņojumu ar ForEach metodi.

Kā lietot PowerShell ForEach-Object cmdlet ar Get-Content

Kā lietot PowerShell ForEach-Object cmdlet ar Get-Content

Šajā pēdējā sadaļā es atkārtošu dažus piemērus, kurus jau minēju pirmajās divās sadaļās.

Tomēr šajā sadaļā es aizstāšu ForEach paziņojumu un/vai ForEach metodi ar ForEach-Object cmdlet.

Sadaļa sākas ar ForEach-Object cmdlet sintaksi

ForEach-Object cmdlet sintakse

Ir divas ForEach-Object sintakses. Šeit ir to vienkāršotās versijas:

|_+_| |_+_|

ForEach-Object sintakses var šķist sarežģītas. Tomēr to ir ļoti viegli lietot. Šajā rokasgrāmatā mēs koncentrēsimies uz InputObject parametrs.

Šis ir parametrs, kas ievada ForEach-Object. Turklāt, InputObject var nosūtīt arī pa cauruļvadu…

|_+_|

Kā izveidot mapes ar teksta faila saturu, izmantojot cmdlet ForEach-Object

Šīs rokasgrāmatas pirmajā un otrajā sadaļā es izveidoju šādus skriptus.

|_+_| |_+_|

Pirmais skripts izmanto Get-Content ForEach paziņojumu, lai izveidotu mapes, izmantojot teksta faila saturu zemāk esošajā ekrānuzņēmumā…

Turklāt otrais skripts izmanto Get-Content ForEach metodi, lai veiktu to pašu uzdevumu.

Ja vēlaties izmantot ForEach-Object Cmdlet, nevis ForEach paziņojumu vai ForEach metodi, skripts tiks modificēts, kā parādīts tālāk...

|_+_|

Kā sadalīt un pēc tam pievienot teksta faila saturu, izmantojot Get-Content un ForEach-Object cmdlet

Sadaļās ForEach paziņojums un ForEach metode es izveidoju šādus skriptus, lai to labotu stackoverflow.com jautājums.

|_+_| |_+_|

Šeit ir tā paša skripta ForEach-Object cmdlet versija:

|_+_|

Darbs ar PowerShell Get-Content un ForEach: pēdējās domas

Darbs ar PowerShell Get-Content un ForEach: pēdējās domas

Šajā rokasgrāmatā kopīgotās tēmas var būt mulsinošas, jo īpaši tāpēc, ka tajā ir ietverti 3 PowerShell ForEach varianti. Lai to būtu viegli saprast, šeit ir tabula, kurā apkopoti šajā rakstā izplatītie jēdzieni.

JautājumsKatram paziņojumamKatrai metodeiForEach-Object cmdlet
Pieņem ievadi no Get-Content
Kā tas pieņem ievadi no Get-Content?Cauruļvads | vai ForEach paziņojuma nosacījumu blokāPowerShell metode .()Cauruļvads | vai caur InputObject parametrs
Kā tas pārveido ievadi no Get-Content?Izveido laika mainīgo, kas attēlo katru kolekcijas objektuPārstāv katru kolekcijas objektu ar PowerShell automātisko konveijera mainīgo $_Pārstāv katru kolekcijas objektu ar PowerShell automātisko konveijera mainīgo $_
Skripta paraugs?ForEach ($ faila nosaukums failā Get-Content D:PS-Tutoriallist.txt) Out-Null
(Get-Content D:PS-Tutoriallist.txt).ForEach(
Jauns vienums - Ceļš D:PS-Pamācība - Nosaukums $_ - Vienuma veida direktorijs
)
Get-Content D:PS-Tutoriallist.txt | Katram objektam
Jauns vienums - Ceļš D:PS-Pamācība - Nosaukums $_ - Vienuma veida direktorijs

Tieši tā — mūsu atjauninātais ceļvedis par PowerShell Get-Content un ForEach lietošanu! Es ceru, ka jums tas noderēja?

Ja jums tas šķita noderīgi, lūdzu, balsojiet uz Vai šī ziņa bija noderīgs jautājums tālāk.

Varat arī uzdot jautājumu, atstāt komentāru vai sniegt papildu atsauksmes, izmantojot veidlapu Atstājiet atbildi, kas atrodas šīs lapas beigās.

Visbeidzot, lai iegūtu vairāk PowerShell tehnoloģiju S zonu, apmeklējiet mūsu Windows PowerShell pamācību lapu. Iespējams, jums ļoti noderēs arī mūsu lapa Work from Home.

Atsauces un turpmākā literatūra

  1. Katram objektam
  2. Get-Content
  3. par_Foreach