似乎%操作在管道後啓動腳本塊,儘管about_Script_Blocks指示%不是必需的。「%」(百分比)在PowerShell中做什麼?
這些都工作得很好。
get-childitem | %{ write-host $_.Name }
{ write-host 'hello' }
%{ write-host 'hello' }
但是當我們在管道後面添加一個腳本塊時,我們需要首先得到%。
get-childitem | { write-host $_.Name }
似乎%操作在管道後啓動腳本塊,儘管about_Script_Blocks指示%不是必需的。「%」(百分比)在PowerShell中做什麼?
這些都工作得很好。
get-childitem | %{ write-host $_.Name }
{ write-host 'hello' }
%{ write-host 'hello' }
但是當我們在管道後面添加一個腳本塊時,我們需要首先得到%。
get-childitem | { write-host $_.Name }
當在小命令(例如,你的例子)的上下文中使用,它是ForEach-Object
別名:
> Get-Alias -Definition ForEach-Object
CommandType Name Definition
----------- ---- ----------
Alias % ForEach-Object
Alias foreach ForEach-Object
當在方程式的上下文中使用,這是modulus operator:
> 11 % 5
1
和作爲模數運算符,%
也可以在一個assignment operator(%=
)中使用:
我會將它標記爲答案,一旦它也包含作爲模運算符的%角色在不同的上下文中。 –
添加公式和賦值運算符示例 – Kohlbrr
對於Foreach-Object,我建議不要使用「%」符號 - 這會讓人們難以閱讀/維護代碼 - 特別是新來PS的人。讓我們面對現實吧,選擇PS的人越多越好。 –
%,可替代Get-ChildItem |
ForEach-Object
{ write-host $_.Name }
,它不能沒有%
或ForEach-Object
此答案不會增加現有答案的價值。 –
賽後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
此答案不會增加兩個現有答案的價值。 –
@ShaunLuttin:該值是一個鏈接,它描述了多個特殊字符,包括% –
你試過搜索「powershell per分號「 – PeeHaa
@PeeHaa這樣做了。謝謝! –
您可能也試過Get-Help% – mjolinor