使用PowerShell函数返回复杂对象?
大多数现成的PowerShell命令都返回“复杂”对象 例如,使用PowerShell函数返回复杂对象?,powershell,Powershell,大多数现成的PowerShell命令都返回“复杂”对象 例如,Get Process返回System.Diagnostics.Process的数组 我写过的所有函数要么返回简单类型,要么返回现有类型的对象 如果我想退回自制物品,有什么指导原则 例如,假设我有一个具有以下属性的对象:Name,Age。用C#我会写的 public class Person { public string Name { get; set; } public uint Age { get; set; }
Get Process
返回System.Diagnostics.Process
的数组
我写过的所有函数要么返回简单类型,要么返回现有类型的对象
如果我想退回自制物品,有什么指导原则
例如,假设我有一个具有以下属性的对象:Name
,Age
。用C#我会写的
public class Person {
public string Name { get; set; }
public uint Age { get; set; }
}
从PowerShell函数返回此类对象的选项有哪些
LoadWithPartialName
引用它有几个选项可用于创建具有自定义特性的自己的对象。还可以使用其他特性扩展现有对象。最显式的方法是使用Add-Member cmdlet:
$test = New-Object PSCustomObject
Add-Member -InputObject $test -Name Name -Value 'Bob' -MemberType NoteProperty
Add-Member -InputObject $test -Name Age -Value 32 -MemberType NoteProperty
还可以将对象可以扩展这一事实与“选择对象”可以向管道中的对象隐式添加属性这一事实结合使用:
$test = '' | Select @{n='Name'; e={'Bob'}}, @{n='Age'; e={32}}
就我个人而言,我更喜欢第一种方法,因为它更显式,不太像挥手的魔术,但归根结底,它是一种脚本语言,所以任何有效的方法都是正确的方法。您可以使用以下语法:
New-Object PSObject -Property @{
Name = 'Bob'
Age = 32
}