パイプライン内のオブジェクトを列挙するための基本的な構文を確認する

完了

ForEach-Object コマンドは列挙を実行します。 ForEach と の 2 つの%一般的なエイリアスがあります。 Where-Object と同様に、ForEach-Object には基本的な構文と高度な構文があります。

基本的な構文では、1 つのメソッドを実行することも、コマンドにパイプされたオブジェクトの単一のプロパティにアクセスすることもできます。 次に例を示します。

Get-ChildItem –Path C:\Encrypted\  -File | ForEach-Object  -MemberName Encrypt

この構文では、メンバーがメソッドの場合、メンバー名の後にかっこを含めないでください。 この基本的な構文は短いため、-MemberName パラメーター名を省略することがよくあり、完全なコマンド名の代わりにエイリアスを使用していることに気付くこともあります。 たとえば、次のコマンドはどちらも同じアクションを実行します。

Get-ChildItem –Path C:\Encrypted\ -File | ForEach Encrypt

Get-ChildItem –Path C:\Encrypted\ -File | % Encrypt

列挙を必要とするシナリオに遭遇することはあまりないかもしれません。 PowerShell の新しいオペレーティング システムとバージョンごとに、新しい PowerShell コマンドが導入されています。 新しいオペレーティング システムでは、通常、以前に列挙が必要だったアクションを実行する新しいコマンドが導入されます。

基本的な構文の制限事項

基本構文は、1 つのプロパティまたはメソッドにのみアクセスできます。 and または -or を使用する論理比較を実行することはできません。それは決定を下すことはできません。その他のコマンドやコードを実行することはできません。 たとえば、次のコマンドは実行せず、エラーが発生します。

Get-Service | ForEach -MemberName Stop -and -MemberName Close