Как да итерирате съдържанието на текстов файл в Powershell

18 декември 2021 г 43837 Изгледи Синтаксис на PowerShell ForEach

Ако имате текстов файл с данни, които искате да използвате, можете да използвате PowerShell Get-Content за да изброите съдържанието на файла. След това използвайте цикъла PowerShellForEach, за да преминете през файла ред по ред.





Можете също да използвате командлета ForEach-Object, за да преглеждате съдържанието на файла, изброен с Get-Content команда.



И накрая, има a За всеки Метод в изхода на Get-Content команда. Можете също да използвате ForEach Метод за повторение на съдържанието на текстов файл.

приложението gmail не изпраща имейли в опашката

Разгледайте темите на публикациите



Как да използвате Get-Content за изброяване на съдържанието на файл

Как да използвате Get-Content за изброяване на съдържанието на файл

Преди да можете да повторите съдържанието на текстов файл с PowerShell За всеки , трябва да посочите съдържанието с Get-Content команда.



Общият синтаксис на the Get-Content командата е...

|_+_|

В Get-Content командата чете съдържанието на текстов файл ред по ред. След това връща колекция от обекти.



Освен това, обект в колекцията от обекти представлява ред от съдържанието в текстовия файл. Тази точка е важна, защото означава, че имаме достъп до отделните обекти, върнати от Get-Content команда.



Това ни дава възможността да използваме PowerShell За всеки за повторение на съдържанието на текстов файл – ред по ред.

Друга важна характеристика на Get-Content командата е, че може да чете определен брой редове от началото или края на текстов файл.

За да започнете примери в това ръководство, изпълнете командата по-долу:

|_+_|

Ето съдържанието на текстовия файл, използван в командата. Командата изброява съдържанието на файла и го записва в променлива, наречена файлове .

Как да итерирате съдържанието на текстов файл в Powershell

И накрая, за да илюстрирам предишната си точка за четене на определен брой редове в началото или в края на файла - изпълнете командата по-долу:

|_+_|

Командата чете първите три реда от посочения текстов файл. Това е уточнено от Глава параметър.

Ето резултата от командата...

Като алтернатива можете да върнете последните N реда с опашка параметър на Get-Content команда.

Ето примерна команда, която връща последните 4 реда от файл...

|_+_|

И ето резултата от командата...

Как да итерирате съдържанието на текстов файл в Powershell

Как да използвате PowerShell за всеки цикъл и Get-Content за итериране през файл

Как да използвате PowerShell за всеки цикъл и Get-Content за итериране през файл

В моето въведение към това ръководство споменах, че първата стъпка към итерацията на съдържанието на текстов файл с PowerShell е да изброите съдържанието му.

Споменах също, че след изброяване на съдържанието на текстов файл с Get-Content команда, можете да използвате PowerShell За всеки за да повторите съдържанието на текстовия файл.

Накрая споменах, че можете да повторите текстов файл с PowerShell За всеки цикъл, За всеки -Object Cmdlet или За всеки Метод .

В първия раздел на това ръководство ви показах как да използвате Get-Content команда за изброяване на съдържанието на текстов файл. Освен това изпълних тази команда, която запази съдържанието на посочения файл в файлове променлива.

|_+_|

В този раздел ще ви науча синтаксиса на За всеки цикъл. След това ще ви покажа пример за Powershell за всеки $файл в $файлове – по същество, използвайки За всеки цикъл за повторение на файловете, съхранявани в нашия файлове променлива.

Да се ​​търкаляме!

Синтаксис на PowerShell ForEach Loop

Синтаксисът на цикъла PowerShell ForEach е...

|_+_|

В синтаксиса, $файлове представлява променлива със списък с елементи. В този пример, $файлове променливата е изходът на Get-Content команда, показана по-долу...

|_+_|

Обратно към синтаксиса на PowerShell ForEach Loop, променливата $файл представлява всеки елемент, запазен в $файлове променлива.

Освен това всеки път, когато цикълът ForEach преминава през цикъл, той запазва един от $файлове променлива във времето $файл променлива. След това използва тази временно запазена променлива в командната скоба {} на ForEach.

Powershell ForEach $file В $files Пример

В последния подраздел ви показах синтаксиса на ForEach Loop като...

|_+_|

Обясних също, че във всеки цикъл на цикъла Powershell ForEach той записва един от обектите, записани в $файлове променлива във времева променлива, наречена $файл .

В този раздел ще използвам този принцип, за да повторя съдържанието на записания в него текстов файл $файлове променлива. След това, в командната част на цикъла ForEach, ще използвам Нов продукт команда за създаване на папка с елементите, записани във времевата променлива, $файл .

Ето командата, която върши работата...

|_+_|

Преди да изпълня командата, ето екранна снимка на папката D:PS-TutorialForEachEx

За да стартирате скрипта, копирайте го в нов документ в PowerShel ISE. След това стартирайте скрипта, като щракнете върху маркираната икона.

След като изпълних командата, папките се създават в D:PS-TutorialForEachEx :

В случай, че сте забравили, това са същите елементи, изброени в оригиналния ми текстов файл!

Как да итерирате съдържанието на текстов файл в Powershell

По същество цикълът PowerShell ForEach повтори съдържанието на текстовия файл (връщан от Get-Content команда). След това използвайте резултатите, за да създадете нова папка...

Как да използвате PowerShell за всеки обект и Get-Content за итерация през файл

Как да използвате PowerShell за всеки обект и Get-Content за итерация през файл

В последния раздел ви показах как да използвате цикъла PowerShell ForEach, за да повторите съдържанието на текстовия файл, върнат от Get-Content команда.

В този раздел ще ви покажа как да използвате командата ForEach-Object за изпълнение на същата задача. Но първо, нека започнем със синтаксиса на командата ForEach-Object.

Синтаксис на командата PowerShell за всеки обект

За практически цели синтаксисът на командата PowerShell ForEach-Object е...

|_+_|

PowerShell ForEach-Object взема стойностите на обекти от конвейер и изпълнява командата, посочена в командния блок {} на ForEach-Object.

За разлика от PowerShell За всеки Цикъл, в който във всеки цикъл обект се записва в определена времева променлива – в PowerShell За всеки обект , обектът се записва във временен автоматичен обект в текущата променлива на конвейера, $_.

И накрая, PowerShell За всеки обект използва автоматичната променлива $_ като вход за изпълнение на командата в блока на командата {}.

Повече в следващия подраздел...

Powershell ForEach-Object $_ В $files Пример

В този пример ще използвам съдържанието на файла, запазен в $файлове променлива, за да създадете папки. Примерът е подобен на това, което направихме в За всеки Секция с контур.

Въпреки това, вместо да използвате За всеки Loop, ще използваме За всеки обект Cmdlet.

супер вълна прегледи на живо

Преди да продължа обаче, нека разгледаме екранната снимка на оригиналния текстов файл.

Също така, тук е скриптът, който записва съдържанието на файла в $файлове променлива.

|_+_|

Сега, когато освежихме мислите си за оригиналния текстов файл, нека видим как да използваме файла в PowerShell За всеки обект команда.

Ето скрипта, който създава папки със съдържанието на текстовия файл:

|_+_| В този скрипт искам да създам папките в друга папка, D:PS-TutorialForEach-ObjectEx . За да потвърдите, че папката е празна, преди да стартирам скрипта, ето екранната снимка... Как да използвате PowerShell за всеки обект и Get-Content за итерация през файл

За да стартирате скрипта, копирайте го в PowerShell ISE и го стартирайте.

След стартиране на скрипта се създават нови папки (с имената на файловете в текстовия файл). D:PS-TutorialForEach-ObjectEx .

Как да използвате метода PowerShell ForEach() и Get-Content за итерация през файл

Как да използвате метода PowerShell ForEach() и Get-Content за итерация през файл

Как да използвате метода PowerShell ForEach() и Get-Content за итерация през файл

Досега това ръководство обхващаше как да изброите съдържанието на текстов файл с командата Get-Content. Разгледах също как да итерирате съдържанието на текстов файл с цикъла PowerShell ForEach и ForEach-Object Cdlet.

В този раздел ще научите как да повторите съдържанието на текстов файл с метода PowerShell ForEach. Както при другите раздели, ще започна този раздел със синтаксиса на метода PowerShell ForEach.

Синтаксис на PowerShell ForEach() Метод Команда

Синтаксисът на командата за метод PowerShell ForEach() е...

|_+_|

Както всички PowerShell Методи , за достъп до ForEach Метод , въведете точка след обекта, последвана от думата За всеки .

След това За всеки , въведете отваряща скоба, (. След това въвеждате команден блок {} – вашите команди се изпълняват в този блок.

Накрая затворете ForEach Метод блок със затваряща скоба, ).

Подобно на командата ForEach-Object, ForEach Метод използва темпоралния автоматичен обект в текущата променлива на конвейера, $_.

В следващия подраздел ще видите как да използвате ForEach Метод .

Powershell ForEach() $_ В пример за $files

Скриптът в този раздел осъществява достъп до За всеки Метод в $файлове променлива – променливата, създадена с тази команда...

|_+_|

Ето скрипта, който използва За всеки Метод за да повторите съдържанието на текстовия файл, записан в $файлове променлива. След това създава папка с всеки елемент.

|_+_|

В този пример ще създавам папките в пътя, D:PS-TutorialForEachMethodEx . Още веднъж, за да потвърдя, че папката е празна, преди да стартирам горния скрипт, ето екранна снимка на папката...

Подобно на другите два скрипта, за да стартирате този скрипт, го копирайте в PowerShell ISE.

След като стартирах скрипта, той създаде папките, използвайки информацията от текстовия файл.

Това е! Нашата актуализирана версия на Как да итерирате съдържанието на текстов файл в Powershell.

Намерихте това ръководство, защото сте търсили foreach във файл powershell или негов вариант. Надявам се, че успях да отговоря на въпроса ви.

Ако отговоря на въпроса ви, любезно гласувайте да до въпроса Полезна ли е тази публикация по-долу.

Като алтернатива можете да зададете въпрос, да оставите коментар или да предоставите повече обратна връзка с формуляра за отговор, който се намира в края на тази страница.

И накрая, за повече PowerShell tech S зони, посетете нашата страница с инструкции за Windows PowerShell. Може също да намерите нашата страница „Работа от дома“ за много полезна.

Тази статия беше напълно пренаписана и актуализирана с нови примери.

Препратки и допълнителна литература

  1. Get-Content
  2. За всеки обект
  3. about_Foreach
  4. PowerShell ForEach: Синтаксис, параметри, примери
  5. 18 най-полезни команди на Powershell за администратори на Windows