今回から文法的な勉強に入ります(環境の構築については環境構築編を参照してください。)「Windows PowerShell 1.0」(以下 PowerShellと略)には129個のコマンドレットがあらかじめ用意されています。「コマンドレットとは何か」「コマンドレットの使い方」「パラメータとパラメータ値」、そして「日数計算をする方法」を紹介します。

実行画面

注意:本稿では、Windows XP環境にてWindows PowerShellの動作確認を行っていますが、ソフトウェアの利用はすべて使用者の責任においてご利用ください。

コマンドレットとは

PowerShellにあらかじめ用意されている命令(command)が「コマンドレット」(commandlet)です。いろいろなコマンドレットを駆使したり複数のコマンドレットを組み合わせたりして、さまざまな処理をすることができます。コマンドレットは「~.exe」のような実行ファイルという形で用意されているのではなく、PowerShellに内蔵されています。コマンドプロンプト(MS-DOS)での「内部コマンド」に相当します。

コマンドレットは略して「cmdlet」と表記されます。「let」は「小さい」という意味の接尾語ですが、実際はコマンドプロンプトの内部コマンドよりも多種(129種類)で多機能です。それでは、どんなコマンドレットがあるのか一覧を見てみましょう。PowerShellに「Get-Command」と入力します。これもコマンドレットの一つです。すべて半角文字です。アルファベットは大文字でも小文字でもかまいません。つまり「get-command」でもOKです。そして最後に[Enter]キーを押してPowerShellに実行させます(図1)。

図1 PowerShellに「Get-Command[Enter]」と入力すると...

画面にコマンドレットの一覧が表示されます。一画面に表示しきれないので、画面が自動的にスクロールしていきます。すべての表示が終わるとスクロールが止まります。右端のスクロールバーで一覧の先頭に戻ってください。横一行がひとつのコマンドレットの簡易説明です。左から「CommandType」欄(Cmdlet)、「Name」欄(コマンドレット名)、「Definition」欄(構文)になっています(図2)。

図2 コマンドレットの一覧がリスト形式で表示されます

コマンドレットの命名規則

「Name」欄に注目してください。「Add-Content」「Add-History」...そしてたった今実行した「Get-Command」というように、コマンドレット名は「動詞-名詞」という規則になっていることがわかります。コマンドプロンプトの内部コマンド名は「動詞」「名詞」「前置詞」の単独だったり、「動詞の省略形」だったりとバラバラでしたが、PowerShellのコマンドレット名は統一されていて、しかも名前から機能が推測しやすくなっています。

試しに次は「Get-Date」コマンドレットを実行してみましょう。機能は名前から予測できるように、Date(日付)をGet(得る)、つまり現在の日時を表示します(図3)。

図3 PowerShellに「Get-Date[Enter]」と入力すると現在の「年月日 時:分:秒」が表示されます

(注意:PCの内蔵時計から情報を得ているので、内蔵時計は正確に合わせておきましょう)