我知道如何通过 PSObjects 将哈希表、数组等从 Powershell 返回到 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 无关,它仅用作输出列表的示例。