What does %{ $_.Key1 } mean?

Frank im Wald picture Frank im Wald · Feb 8, 2016 · Viewed 10.9k times · Source

While programming for HDInsight I came across lines like

$storageAccountKey = Get-AzureRmStorageAccountKey 
    -ResourceGroupName $resourceGroupName 
    -Name $storageAccountName 
    |  %{ $_.Key1 }

I understand $_ refers to the result of the Get-AzureRmStorageAccountKey command. But what exactly is the meaning of %{} ?

Answer

Ansgar Wiechers picture Ansgar Wiechers · Feb 8, 2016

%{ $_.Key1 }ForEach-Object { Write-Output $_.Key1 } ⇔ for each object in the pipeline, echo the value of its property Key1.

% is an alias for ForEach-Object. $_ is the current object automatic variable.