Loop door bestanden in een map met behulp van PowerShell

Loop Door Bestanden In Een Map Met Behulp Van Powershell



PowerShell kan worden beschouwd als de scriptoplossing die alle automatiseringsfaciliteiten mogelijk maakt. Het heeft de mogelijkheid om alle bewerkingen uit te voeren die verband houden met ' Verkenner ”, zoals het kopiëren, verwijderen, verplaatsen of hernoemen van bestanden. Bovendien kan PowerShell de bestanden in een map doorlopen met behulp van specifieke methoden of opdrachten. Bij het programmeren is de lus een reeks instructies die continu wordt uitgevoerd totdat aan een bepaalde voorwaarde is voldaan.

Dit artikel behandelt een handleiding voor het doorlussen in een map met behulp van PowerShell.

Hoe door bestanden in een map te bladeren met behulp van Powershell?

De PowerShell kan door bestanden in de map bladeren met behulp van de ' Forach() ” lus. De lus 'Foreach()' wordt gebruikt om alle items tegelijk te verwerken, zoals het hernoemen of kopiëren van meerdere bestanden. Terwijl de ' Foreach-Object() 'cmdlet verwijst naar één item tegelijk in een lus. Het verwerkt één item tegelijk.







Voorbeeld 1: loop door bestanden met 'Foreach-Object' in PowerShell Script

In dit voorbeeld doorlopen we bestanden in een map met behulp van PowerShell en drukken we de naam af van de bestanden die beschikbaar zijn in die map:



Get-ChildItem 'C:\Doc' |

Foreach-Object {

$_ .Voor-en achternaam

}

Volgens bovenstaande code:



  • Voeg eerst de ' Get-ChildItem ” naast het mappad om de beschikbare bestanden in die map te krijgen.
  • Gebruik daarna de ' | ” pijplijn om de output over te brengen naar de “ Foreach-Object() ” cmdlet om te werken tegen elk item in de verzameling invoerobjecten.
  • Voeg de ' $_.Volledige naam ” cmdlet om de naam van de opgehaalde bestanden uit de map weer te geven:





Het kan worden waargenomen dat de bestanden in de map zijn weergegeven in de PowerShell-console met behulp van de ' Foreach-Object() ” lus.

Voorbeeld 2: loop door bestanden met 'Foreach-Object' met '-Recurse' in PowerShell-script

Loop nu door de submappen met behulp van PowerShell's ' -recursie ' parameter:



Er kan worden opgemerkt dat de bestanden uit de submappen ook zijn weergegeven in de PowerShell-console.

Voorbeeld 3: loop door bestanden met 'Foreach-Object' in PowerShell Console

Om dezelfde bewerking uit te voeren, laten we eerst de beschikbare bestanden bekijken voordat we de geselecteerde in de respectieve map verwijderen met behulp van de ' Get-ChildItem ”cmdlet naast het mappad:

> Get-ChildItem 'C:\Doc'

De beschikbare bestanden in de map zijn weergegeven in de PowerShell-console.

Laten we nu de bestanden verwijderen met de ' .tekst ” extensie door gebruik te maken van de “ Foreach-Object() 'lus in PowerShell:

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

Foreach-Object {

Verwijder voorwerp $_ .Voor-en achternaam

}

Volgens bovenstaande code:

  • Voeg eerst de ' Get-ChildItem ” cmdlet gevolgd door het mappad en de “ *.ps1 ” extensie om de bestanden te selecteren met de “ .ps1 ' verlenging.
  • Gebruik daarna de ' | ” pijplijn om de output over te brengen naar de “ Foreach-Object() ” lus.
  • Binnen in de ' Foreach-Object() ' lus, voeg de ' Verwijder voorwerp ” cmdlet om de bestanden te verwijderen die zijn opgehaald door de “ $_.Volledige naam ' eigendom:

Laten we nu controleren of de bestanden zijn verwijderd of niet door de bestanden in de map op te halen:

> Get-ChildItem 'C:\Doc'

Zoals u kunt zien, zijn de bestanden met de ' .tekst ”-extensie zijn verwijderd met behulp van een lus in PowerShell.

Conclusie

Door de bestanden in een map bladeren ' Foreach-Object() '-lus wordt gebruikt in PowerShell. Het verwerkt en verwijst naar één item tegelijk uit een verzameling items of objecten. Bovendien helpt het bij het verwijderen, hernoemen of kopiëren van meerdere bestanden. Dit artikel bevat een complete handleiding om met behulp van PowerShell door de bestanden in een map te bladeren.