はじめに
前回の予告で、次回はスクリプトの説明を行うと書いたのですが、もう少しコマンドレット操作についての解説を行い、PowerShellの理解を深めてもらいたいと考えました。その上で、次回スクリプトの説明を行いたいと思います。スクリプトの説明を期待していた方には申し訳ありませんが、ご理解いただけると助かります。
今回は、パイプを中心にコマンドレットの使用方法を説明します。
これまでの記事
コマンドレットが返すもの
はじめにGet-Date
コマンドレットを紹介しましょう。
このコマンドレットは、現在の日付と時刻を取得します(Get-Dateの使用方法を確認したい場合は、Get-Help Get-Date
と入力してください。詳しくは前回の記事を参照してください)。
コンソールウィンドウで、
Get-Date
と入力しEnterキーを押します。
現在の日時が表示されました。
実は、Get-Dateコマンドレットは日時の文字を表示しているのではなく、.NET FrameworkのオブジェクトであるSystem.DateTimeを取得し、規定値である現在日時を表示しています。そのほかのコマンドレットも同様に.NET Frameworkのオブジェクトを返します。
ここで本当に.NET Frameworkのオブジェクトが返されるのか実験をしてみましょう。まずは、
(Get-Date).GetType()
と入力してみてください。
Name列にDateTimeと表示されています。これで.NET FrameworkのオブジェクトであるSystem.DateTimeであることが確認できました。
さて、コマンドレットの実行結果は.NET Frameworkのオブジェクトであることがわかりました。ということは、そのほかのDateTimeオブジェクトが持つメンバーにもアクセスが可能だということです。
Microsoft Visual Studioがインストールされている方はSystem.DateTimeのヘルプを参照してみてください。インストールされていない方はオンラインのMSDNライブラリにあるSystem.DateTimeで確認してみてください。
どうでしょう? System.DateTime1つとってもこれだけの多くのメンバーにアクセス可能です。試しにYear
プロパティにアクセスしてみましょう。コンソールウィンドウで、
(Get-Date).Year
と入力して、Enterキーを押してみてください。現在の年を取得することができます。
このようにコマンドレットは.NET Frameworkオブジェクトを返すということを覚えておくとよいでしょう。