Dela via


about_Simplified_Syntax

KORT BESKRIVNING

Beskriver enklare och mer naturliga sätt att använda skriptfilter för samlingar av objekt.

LÅNG BESKRIVNING

Med förenklad syntax, som introducerades i Windows PowerShell 3.0, kan du skapa vissa filterkommandon utan att använda skriptblock. Den förenklade syntaxen liknar naturligt språk och är främst användbar med samlingar av objekt som skickas till kommandon Where-Object och ForEach-Object deras motsvarande alias where och foreach.

Du kan använda en metod för medlemmarna i en samling (oftast en matris) utan att referera till den automatiska variabeln $_ i ett skriptblock.

Överväg följande två anrop:

Standardsyntax

dir Cert:\LocalMachine\Root | where { $_.FriendlyName -eq 'Verisign' }
dir Cert:\ -Recurse | foreach { $_.GetKeyAlgorithm() }

Förenklad syntax

Under den förenklade syntaxen behandlas jämförelseoperatorer som arbetar med medlemmar i objekt i en samling som parametrar. Du kan anropa en metod för objekt i en samling utan att referera till den automatiska variabeln $_ i ett skriptblock. Jämför följande två anrop med dem i föregående exempel:

dir Cert:\LocalMachine\Root | where FriendlyName -eq 'Verisign'
dir Cert:\ -Recurse | foreach GetKeyAlgorithm

Båda syntaxerna fungerar, men den förenklade syntaxen returnerar resultat utan att referera till den automatiska variabeln $_ i ett skriptblock. Metodnamnet GetKeyAlgorithm behandlas som en parameter för ForEach-Object. Det andra kommandot returnerar samma resultat, men utan fel, eftersom den förenklade syntaxen inte försöker returnera resultat för objekt som det angivna argumentet inte tillämpades för.

I det här exemplet skickas Process egenskapen Description som parameter för medlemsnamn till ForEach-Object kommandot . Resultatet är beskrivningar av aktiva processer.

Get-Process | foreach Description

I det här exemplet skickas DirectoryInfo metoden GetFiles som parametern medlemsnamn för ForEach-Object kommandot. Metoden anropas med sökmönsterparametern .*. Resultatet är FileInfo poster för alla dolda unix-filer i användarhemkataloger.

Get-ChildItem /home -Directory | foreach GetFiles .*

SE ÄVEN