web-dev-qa-db-ja.com

PowerShellで「%」(パーセント)は何をしますか?

about_Script_Blocks は%が不要であることを示しますが、%操作はパイプラインの後にスクリプトブロックを開始するようです。

これらはすべて正常に機能します。

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

{ write-Host 'hello' }

%{ write-Host 'hello' }

しかし、パイプラインの後にスクリプトブロックを追加する場合は、最初に%が必要です。

get-childitem | { write-Host $_.Name }
90
Shaun Luttin

コマンドレットのコンテキスト(例など)で使用される場合、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
126
Kohlbrr

投稿 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
9

%はGet-ChildItem |ForEach-Object{ write-Host $_.Name }を置き換えることができ、%またはForEach-Objectなしでは行けません

2
Xao