この記事では、PowerShellのオブジェクト、メソッド、プロパティについて、例を挙げながら説明します。
オブジェクト
PowerShellの出力は、テキストではなくオブジェクトとして出力されます。
そのため、PowerShellのコマンド同士で連携ができます。
オブジェクトは「クラス」という型の実体(インスタンス)です。
例えば、Windowsフォームアプリケーションでは、フォーム(Form)クラスという型を使用します。
Notepad.exeを実行するとメモ帳のフォームオブジェクトが作成され、ユーザがアプリケーションを操作できるようになります。
メソッドとプロパティ
オブジェクトには、オブジェクトに関するデータを格納するプロパティと、オブジェクトを変更できるメソッドがあります。
「メソッド」は、オブジェクトに対して実行できるアクションを指定する一連の命令(関数やプロシージャ)です。
たとえば、FileInfoオブジェクトで考えると、ファイルをコピーするCopyToメソッド、ファイルを削除するDeleteメソッドなどがあります。
「プロパティ」は、オブジェクト内で保持しているデータを読み書きするためのフィールドです。
フォールドにはデータ型に対応した値が保持されます。
プロパティには、読み書きができるもの、読み込みだけ、書き込みだけのプロパティなどがあります。
たとえば、FileInfoオブジェクトで考えると、親ディレクトリはDirectoryプロパティで指定します。
メソッドとプロパティを指定するには、オブジェクトの後にピリオド(.)で区切り、メソッド名またはプロパティ名を指定します。
メソッドとプロパティを「クラスメンバー」といいます。
■メソッドの指定です。
オブジェクト.メソッド()
■プロパティの指定です。
オブジェクト.プロパティ
メソッドとプロパティの例
日付の処理を例に、PowerShellのメソッドとプロパティを説明します。
PowerShellで現在の日時を取得する「Get-Date」コマンドレットを実行すると、DateTime型のオブジェクトとして返されます。
PS> Get-Date 2023年1月10日 21:10:22
DateTimeオブジェクトには、日付の加算をする処理として、AddDaysメソッドが定義されています。
AddDaysメソッドを使用すると、取得した現在の日付に指定した日数を追加た結果を出力できます。
PS> (Get-Date).AddDays(5) 2023年1月15日 21:10:22
DateTimeオブジェクトには、Yearプロパティなどがあります。これらのプロパティを使用すると、日付の必要なデータを取得することができます。
PS> (Get-Date).Year 2023
このように、PowerShellではコマンドの実行結果として出力されるオブジェクトを操作できます。
まとめ
今回はWindows PowerShellのオブジェクト、メソッド、プロパティについて説明しました。
PowerShellは従来のテキストベースのシェルに比べて、複雑な処理を簡潔な表現で使用できることが分かりました。