Bud*_*Joe 9 powershell tuples powershell-2.0
最新版本的Powershell是否能够执行类似JavaScript的操作:
var point = new Object();
point.x = 12;
point.y = 50;
Run Code Online (Sandbox Code Playgroud)
如果没有,那等价或解决方法是什么?
更新
阅读所有评论
Jar*_*Par 13
通过add-member cmdlet可以直接支持该语法的功能.前一段时间,我将这个功能包装在一个通用的元组函数中.
这将使您能够一行创建这些对象.
$point = New-Tuple "x",12,"y",50
Run Code Online (Sandbox Code Playgroud)
这是New-Tuple的代码
function New-Tuple()
{
param ( [object[]]$list= $(throw "Please specify the list of names and values") )
$tuple = new-object psobject
for ( $i= 0 ; $i -lt $list.Length; $i = $i+2)
{
$name = [string]($list[$i])
$value = $list[$i+1]
$tuple | add-member NoteProperty $name $value
}
return $tuple
}
Run Code Online (Sandbox Code Playgroud)
关于这个主题的博客文章:http://blogs.msdn.com/jaredpar/archive/2007/11/29/tuples-in-powershell.aspx#comments
mrw*_*aim 12
对于简单的方法,首先是哈希表(在V1中可用)
$obj = @{}
$obj.x = 1
$obj.y = 2
Run Code Online (Sandbox Code Playgroud)
二,是PSObject(在V2中更容易)
$obj = new-object psobject -property @{x = 1; y =2}
Run Code Online (Sandbox Code Playgroud)
它为您提供了大致相同的对象,但如果您想对它们进行排序/分组/格式化/导出,则psobject会更好
对不起,即使选择的答案是好的,我也无法抗拒这个hacky one line的回答:
New-Object PsObject | Select-Object x,y | %{$_.x = 12; $_.y = 50; $foo = $_; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10934 次 |
| 最近记录: |