19

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 %{} ?

Ansgar Wiechers
  • 193,178
  • 25
  • 254
  • 328
Frank im Wald
  • 896
  • 1
  • 11
  • 28

2 Answers2

39

%{ $_.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.

Ansgar Wiechers
  • 193,178
  • 25
  • 254
  • 328
0

In fact $storageAccountKey=Get-AzureRmStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName | %{ $_.Key1 } only works for PowerShell 1.3.2 and previous versions.

The above command does not work now.

Please use the latest command like the bellow:

$storageAccountKey = Get-AzStorageAccountKey `
            -ResourceGroupName $storageAccountResourceGroupName `
            -Name $storageAccountName | Where-Object {$_.KeyName -eq "key1"} | %{$_.Value}
zzy
  • 139
  • 6