Powershell から PSObjects を介して c# にハッシュテーブル、配列などを返す方法を知っています。これを使用するには、出力を一覧表示するだけでなく、Powershell スクリプトからオブジェクトを返す必要があります。
しかし、Powershell のリストから、Powershell スクリプトから返すことができる構造化されたものにするにはどうすればよいでしょうか?
この単純なシナリオについて考えてみてください (例として):
Get-ChildItem C:\Test
そして、次のような出力が得られます。
PS C:\test> Get-ChildItem
Directory: C:\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 03.06.2013 14:59 6 test1.txt
-a--- 03.06.2013 14:59 5 test2.txt
ここで、各ファイルの Name プロパティと Length プロパティを取得し、powershell スクリプトからある種のオブジェクトとして返したいと考えています。C# で処理できます。
C# から処理できるものの例は次のとおりです。
$a = New-Object psobject -Property @{
Name = "test1.txt"
Age = 6
}
$b = New-Object psobject -Property @{
Name = "test2.txt"
Age = 5
}
$myarray = @()
$myarray += $a
$myarray += $b
Return $myarray
Get-ChildItem (またはリストを提供する類似のもの) からオブジェクトの配列または類似のものに取得するにはどうすればよいですか?
これは特に Get-ChildItem に関するものではないことに注意してください。リストを出力するものの例として使用されているだけです。