FC2ブログ

WIN1@Codename

Codename

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PowerShell Where句で、カッコの有り無し考察

PowerShell Where句で{}が省略できるとのことで検証。

  

PS C:\> Get-Process | Where {$_.Id -eq 4144}

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName                              
-------  ------    -----      ----- -----   ------     -- -----------                              
    999      75   163744     222024  1033   153.50   4144 powershell_ise                           

 

PS C:\> Get-Process | Where $_.Id -eq 4144
Where-Object : パラメーター 'Property の引数を確認できません。引数が null または空です。null または空でない引数を指定して、コマンドを再度実行してください。
発生場所 行:1 文字:21
+ Get-Process | Where $_.Id -eq 4144
+                     ~~~~~
    + CategoryInfo          : InvalidData: (:) [Where-Object]、ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.WhereO
   bjectCommand

 

PS C:\> Get-Process | Where Id -eq 4144

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName                              
-------  ------    -----      ----- -----   ------     -- -----------                              
    999      75   163744     222024  1033   153.50   4144 powershell_ise                           

 

PS C:\> Get-Process | Where (Id -eq 4144)
Id : 用語 'Id' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパス
が正しいことを確認してから、再試行してください。
発生場所 行:1 文字:22
+ Get-Process | Where (Id -eq 4144)
+                      ~~
    + CategoryInfo          : ObjectNotFound: (Id:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

 

PS C:\> Get-Process | Where {Id -eq 4144}
Id : 用語 'Id' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパス
が正しいことを確認してから、再試行してください。
発生場所 行:1 文字:22
+ Get-Process | Where {Id -eq 4144}
+                      ~~
    + CategoryInfo          : ObjectNotFound: (Id:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
Id : 用語 'Id' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパス
が正しいことを確認してから、再試行してください。
発生場所 行:1 文字:22
+ Get-Process | Where {Id -eq 4144}

 

 

 

結論 

$_ を使うときは { } が必要。 

Get-Process | Where {$_.Id -eq 4144}

 

無しの場合は不要 むしろ ( ) { } など付けるとエラー

Get-Process | Where Id -eq 4144

 

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://codename2010.blog11.fc2.com/tb.php/296-8bf3e362
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。