1. ホーム
  2. powershell

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

2023-01-11 01:51:32

質問

変数の違いは何ですか? $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プロパティのみを持つオブジェクトとなります。

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