コンソールに文字列を表示。 例.
"Hello world"
コマンドレット(後述)を使用した場合。 例.
Write-Host "Hello world"
PowerShell?はコマンドレットと呼ばれる100種類以上のコマンドライン・ツール群を単独で、あるいはパイプライン(後述)で連結して使用するのが基本。 コマンドレットは原則verb-noun(動詞-名詞)という命名規則に従っている。 パラメータをつける場合は「-パラメータ名」あるいは「-パラメータ名 パラメータ値」を指定する。 例.
# コマンドレットの一覧表示 Get-Command # サービスの一覧を表示 Get-Service # アプリケーション イベントログの最新15個のエントリを表示 Get-EventLog -logName Application -newest 15
コマンドラインの結果を、次に行う処理に引き渡す際に使用する。 内部的な話をすると、コマンドレットが値を返却する場合、.NET Frameworkのオブジェクトが含まれる配列であることが多く、このオブジェクト配列がパイプラインを渡って後続のコマンドレットに入力される。 例.
# プロセスのリスト(System.Diagnostics.Processオブジェクトの配列)を取得し、 # Where-Objectコマンドレットでハンドル数(handlesプロパティ)の値が500より大きいものだけを取り出し # Select-Objectコマンドレットで最初の5つのオブジェクトだけを切りだして表示 Get-Process | Where-Object {$_.handles -gt 500} | Select-Object -first 5 # C:\Windows 配下のフォルダ、ファイルの一覧(System.IO.DirectoryInfo,System.IO.FileInfoオブジェクトの配列)を取得し、 # ForEach-Objectコマンドレットで配列を列挙しすべてのオブジェクトのFullNameプロパティ(フルパス)の値を表示 Get-ChildItem C:\Windows | ForEach-Object {$_.FullName} # 通常の配列に関してもパイプラインを使用可能。 # 重複を取り除き、ソートをかける @(3,5,10,1,2,1,1,1,2,6,4,4)|Sort-Object|Get-Unique
※ case を書かないのが特徴的。またスクリプトブロックを条件文に記述できる。
※ 比較演算子の一覧。PowerShell?ではPerlの文字列比較演算子のような記述をおこなうが、Perlとは異なり文字列も数値も同じ書式である。