PowerShell中“%”(百分比)的作用是什么?

时间:2014-04-03 19:01:11

标签: powershell syntax

似乎%操作在管道之后启动脚本块,尽管about_Script_Blocks表示%isn不是必需的。

这些都很好用。

get-childitem | %{ write-host $_.Name }

{ write-host 'hello' }

%{ write-host 'hello' }

但是当我们在管道之后添加一个脚本块时,我们需要先得到%。

get-childitem | { write-host $_.Name }

3 个答案:

答案 0 :(得分:120)

在cmdlet(例如您的示例)的上下文中使用时,它是ForEach-Object的别名:

> Get-Alias -Definition ForEach-Object

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

在等式的上下文中使用时,它是modulus operator

> 11 % 5

1

并且作为模数运算符,%也可用于assignment operator%=):

> $this = 11
> $this %= 5
> $this

1

答案 1 :(得分:8)

帖子PowerShell - Special Characters And Tokens
提供多个符号的描述,包括%

% (percentage) 
1. Shortcut to foreach.
Task: Print all items in a collection.
Solution.
... | % { Write-Host $_ }
2. Remainder of division, same as Mod in VB.
Example:
5 % 2

答案 2 :(得分:2)

%可以取代Get-ChildItem | ForEach-Object { write-host $_.Name }并且不能没有% ForEach-Object