我想创建一个任意值的对象,有点像我在C#
中可以做到这一点var anon = new { Name = "Ted", Age = 10 };
答案 0 :(得分:23)
试试这个:
PS Z:\> $o = @{}
PS Z:\> $o.Name = "Ted"
PS Z:\> $o.Age = 10
注意:您还可以将此对象作为-Body
的{{1}}包含在内,并且无需额外工作即可对其进行序列化。
答案 1 :(得分:1)
正如@Vasyl所指出的那样,接受的答案将创建一个哈希表,该哈希表实际上没有属性,而是包含keys
和values
的字典,因此它将与其他一些PS函数一起工作
请参阅:$o | Select -Property *
相反,请按4 Ways to Create PowerShell Objects尝试以下任一操作:
#1可能是最新,最简单的语法,除非您有强烈的偏好
PSCustomObject
$o = [pscustomobject]@{
Name = "Ted";
Age = 10
}
Select-Object
cmdlet $o = Select-Object @{n='Name';e={'Ted'}},
@{n='Age';e={10}} `
-InputObject ''
New-Object
和Add-Member
$o = New-Object -TypeName psobject
$o | Add-Member -MemberType NoteProperty -Name Name -Value 'Ted'
$o | Add-Member -MemberType NoteProperty -Name Age -Value 10
New-Object
和哈希表$properties = @{
Name = "Ted";
Age = 10
}
$o = New-Object psobject -Property $properties;
答案 2 :(得分:0)