Gennemse grundlæggende syntaks for at optælle objekter i pipelinen

Fuldført

Kommandoen udfører ForEach-Object oplistning. Den har to almindelige aliaser: ForEach og %. Ligesom Where-Objecthar , ForEach-Object en forenklet syntaks og en scriptblok-syntaks.

I den forenklede syntaks kan du køre en enkelt metode eller tilgå en enkelt egenskab for de objekter, der er blevet piped ind i kommandoen. Her er et eksempel:

Get-ChildItem –Path C:\Encrypted\  -File | ForEach-Object  -MemberName Encrypt

Med denne syntaks medtager du ikke parenteserne efter medlemsnavnet, hvis medlemmet er en metode. Fordi denne forenklede syntaks er ment som kort, vil du ofte bemærke den uden -MemberName parameternavnet, og du kan se den med et alias i stedet for det fulde kommandonavn. Begge følgende kommandoer udfører f.eks. den samme handling:

Get-ChildItem –Path C:\Encrypted\ -File | ForEach Encrypt

Get-ChildItem –Path C:\Encrypted\ -File | % Encrypt

Seddel

Du støder muligvis ikke på mange scenarier, der kræver optælling. Hvert nyt operativsystem og hver version af PowerShell introducerer nye PowerShell-kommandoer. Nyere operativsystemer introducerer typisk nye kommandoer, der udfører handlinger, der tidligere krævede optælling.

Begrænsninger ved den forenklede syntaks

Den forenklede syntaks kan kun tilgå én egenskab eller metode. Den kan ikke udføre logiske sammenligninger, der bruger -and eller -or; den kan ikke træffe beslutninger; og den kan ikke køre andre kommandoer eller kode. Følgende kommando kører f.eks. ikke, og den resulterer i en fejl:

Get-Service | ForEach -MemberName Stop -and -MemberName Close

Den forenklede syntaks accepterer også en valgfri -ArgumentList parameter til at sende argumenter til metoder, der kræver input. For eksempel, for at splitte en modulnavnestreng på tegnet . :

"Microsoft.PowerShell.Core" | ForEach-Object -MemberName Split -ArgumentList "."

Brug af positionsforkortelse:

"Microsoft.PowerShell.Core" | foreach Split "."