“%”(百分比)在 PowerShell 中是做什么的?

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

这些都很好用。

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


{ write-host 'hello' }


% { write-host 'hello' }

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

get-childitem | { write-host $_.Name }
107170 次浏览

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

> Get-Alias -Definition ForEach-Object


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

当用在方程式的上下文中时,它是 模运算符:

> 11 % 5


1

作为模运算符,%也可用于 赋值运算符赋值运算符(%=) :

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


1

%可以取代 Get-ChildItem | ForEach-Object { write-host $_.Name },没有 %或者 ForEach-Object就不能工作。

PowerShell-特殊字符和令牌提供了包括 %在内的多个符号的描述

% (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