Share via


what does "%" mean in powershell syntax

Question

Monday, February 15, 2010 1:42 PM | 4 votes

I know that typically the "%" character is for mod functionality.  In some powershell scripts I've come across, I've noticed % being used after the | character and I can't seem to find what the syntax means.

For example. "$old | % { Remove-Item $_.SPBackupDirectory -Recurse }"   I can't figure out what | % is doing.....  is it a shorthand foreach expression?
Tony Testa www.tonytestasworld.com

All replies (3)

Monday, February 15, 2010 1:46 PM ✅Answered | 10 votes

Yes, it is a shortcut notation or alias for ForEach-Object:

PS > get-alias -definition foreach-object

CommandType     Name                                                Definition
                                                     
Alias           %                                                   ForEach-Object
Alias           foreach                                             ForEach-Object

The above only works with PowerShell v2.  V1 doesn't support the -Definition parameter.


Tuesday, February 16, 2010 4:22 PM | 2 votes

Also this is math operator: division with a reminder. When percent sign is placed after pipeline sign "|" — it always threated as Foreach-Object alias. In all other cases it is threated as math operator.http://www.sysadmins.lv


Friday, February 28, 2014 6:17 PM

Not quite.  For example:

% -process {$_.name} -inputobject (gci profile.ps1)