1. ホーム
  2. powershell

[解決済み] PowerShellで使用するGetType、変数の違いについて

2022-03-06 11:15:24

質問

変数の違いは何ですか? $a$b ?

$a = (Get-Date).DayOfWeek
$b = Get-Date | Select-Object DayOfWeek

を確認しようとしました。

$a.GetType
$b.GetType

MemberType          : Method
OverloadDefinitions : {type GetType()}
TypeNameOfValue     : System.Management.Automation.PSMethod
Value               : type GetType()
Name                : GetType
IsInstance          : True

MemberType          : Method
OverloadDefinitions : {type GetType()}
TypeNameOfValue     : System.Management.Automation.PSMethod
Value               : type GetType()
Name                : GetType
IsInstance          : True

しかし、これらの変数の出力は異なっているように見えますが、違いはないようです。

どのように解決するのですか?

まず、GetTypeを呼び出すための括弧がありません。あなたが見ているのは、[DayOfWeek]のGetTypeメソッドを記述したMethodInfoです。実際にGetTypeを呼び出すには、次のようにします。

$a.GetType();
$b.GetType();

と表示されるはずです。 $a は[DayOfWeek]、そして $b が生成するカスタムオブジェクトです。 選択オブジェクト コマンドレットを使用して、データ オブジェクトの DayOfWeek プロパティのみをキャプチャすることができます。したがって、DayOfWeekプロパティのみを持つオブジェクトということになります。

C:\> $b.DayOfWeek -eq $a
True