3

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 に関するものではないことに注意してください。リストを出力するものの例として使用されているだけです。

4

1 に答える 1

7

そのような何かがそれを行う必要があります:

$arr = Get-ChildItem | Select-Object Name,Length
return $arr

何らかの理由で機能しない場合は、配列を 1 つの配列要素に入れ子にしてみてください (コンマ演算子を使用)。

return ,$arr
于 2013-06-03T13:18:14.507 に答える