I-loop Through Files sa isang Directory Gamit ang PowerShell

I Loop Through Files Sa Isang Directory Gamit Ang Powershell



Maaaring ituring ang PowerShell bilang ang scripting solution na nagbibigay-daan sa lahat ng mga pasilidad ng automation. Ito ay may kakayahang gawin ang lahat ng mga operasyong nauugnay sa ' File Explorer ”, gaya ng pagkopya, pagtanggal, paglipat, o pagpapalit ng pangalan ng mga file. Bukod dito, ang PowerShell ay maaaring umikot sa mga file sa isang direktoryo gamit ang mga partikular na pamamaraan o utos. Sa programming, ang loop ay isang sequence ng mga tagubilin na patuloy na tumatakbo hanggang sa matupad ang isang partikular na kundisyon.

Sasaklawin ng write-up na ito ang isang gabay para sa pag-loop sa isang direktoryo gamit ang PowerShell.

Paano Mag-loop sa Mga File sa isang Direktoryo Gamit ang PowerShell?

Maaaring umikot ang PowerShell sa mga file sa direktoryo gamit ang “ Foreach() ” loop. Ang 'Foreach()' loop ay ginagamit upang iproseso ang lahat ng mga item nang sabay-sabay, tulad ng pagpapalit ng pangalan o pagkopya ng maraming file. Habang ang ' Foreach-Object() ” Ang cmdlet ay tumutukoy sa isang item sa isang pagkakataon sa isang loop. Pinoproseso nito ang isang item sa isang pagkakataon.







Halimbawa 1: Loop Through Files Gamit ang 'Foreach-Object' sa PowerShell Script

Sa halimbawang ito, mag-iikot kami sa mga file sa isang direktoryo gamit ang PowerShell at i-print ang pangalan ng mga file na available sa loob ng direktoryong iyon:



Get-ChildItem 'C:\Doc' |

Foreach-Object {

$_ .Buong pangalan

}

Ayon sa code sa itaas:



  • Una, idagdag ang ' Get-ChildItem ” sa tabi ng path ng direktoryo para makuha ang mga file na available sa loob ng direktoryong iyon.
  • Pagkatapos nito, gamitin ang ' | ' pipeline upang ilipat ang output sa ' Foreach-Object() ” cmdlet upang gumana laban sa bawat item sa koleksyon ng mga input object.
  • Idagdag ang ' $_.FullName ” cmdlet upang ipakita ang pangalan ng mga nakuhang file mula sa direktoryo:





Maaaring maobserbahan na ang mga file sa direktoryo ay ipinakita sa PowerShell console gamit ang ' Foreach-Object() ” loop.

Halimbawa 2: Loop Through Files Gamit ang 'Foreach-Object' Gamit ang '-Recurse' sa PowerShell Script

Ngayon, lumiko sa mga sub-directory gamit ang PowerShell's ' -uulit ” parameter:



Mapapansin na ang mga file mula sa mga sub-directory ay naipakita din sa PowerShell console.

Halimbawa 3: Loop Through Files Gamit ang 'Foreach-Object' sa PowerShell Console

Upang maisagawa ang parehong operasyon, una sa lahat, tingnan natin ang magagamit na mga file bago tanggalin ang napili sa kani-kanilang direktoryo sa pamamagitan ng paggamit ng ' Get-ChildItem ” cmdlet sa tabi ng path ng direktoryo:

> Get-ChildItem 'C:\Doc'

Ang mga available na file sa direktoryo ay ipinakita sa PowerShell console.

Ngayon, tanggalin natin ang mga file na may ' .txt ” extension sa pamamagitan ng paggamit ng “ Foreach-Object() ” loop sa PowerShell:

Get-ChildItem 'C:\Doc' * .ps1 |

Foreach-Object {

Alisin-Item $_ .Buong pangalan

}

Ayon sa code sa itaas:

  • Una, idagdag ang ' Get-ChildItem 'cmdlet na sinusundan ng path ng direktoryo at ang ' *.ps1 ” extension para piliin ang mga file na may “ .ps1 ” extension.
  • Pagkatapos nito, gamitin ang ' | ' pipeline upang ilipat ang output sa ' Foreach-Object() ” loop.
  • Sa loob ng ' Foreach-Object() 'loop, idagdag ang ' Alisin-Item 'cmdlet upang alisin ang mga file na nakuha ng ' $_.FullName ” ari-arian:

Ngayon, i-verify natin kung ang mga file ay tinanggal o hindi sa pamamagitan ng pagkuha ng mga file sa direktoryo:

> Get-ChildItem 'C:\Doc'

Tulad ng nakikita mo na ang mga file na may ' .txt ” Ang extension ay inalis gamit ang isang loop sa PowerShell.

Konklusyon

Upang i-loop ang mga file sa isang direktoryo ' Foreach-Object() 'Ang loop ay ginagamit sa PowerShell. Ito ay nagpoproseso at tumutukoy sa isang item sa isang pagkakataon mula sa isang koleksyon ng mga item o bagay. Bukod dito, nakakatulong ito sa pagtanggal, pagpapalit ng pangalan, o pagkopya ng maraming file. Ang write-up na ito ay sumasaklaw sa isang kumpletong gabay sa pag-ikot sa mga file sa isang direktoryo gamit ang PowerShell.