当前位置:  开发笔记 > 编程语言 > 正文

Powershell中的结构或对象2

如何解决《Powershell中的结构或对象2》经验,为你挑选了3个好方法。

最新版本的Powershell是否能够执行类似JavaScript的操作:

var point = new Object();
point.x = 12;
point.y = 50;

如果没有,那等价或解决方法是什么?

更新
阅读所有评论



1> JaredPar..:

通过add-member cmdlet可以直接支持该语法的功能.前一段时间,我将这个功能包装在一个通用的元组函数中.

这将使您能够一行创建这些对象.

$point = New-Tuple "x",12,"y",50

这是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
} 

关于这个主题的博客文章:http://blogs.msdn.com/jaredpar/archive/2007/11/29/tuples-in-powershell.aspx#comments



2> mrwaim..:

对于简单的方法,首先是哈希表(在V1中可用)

$obj = @{}
$obj.x = 1
$obj.y = 2

二,是PSObject(在V2中更容易)

$obj = new-object psobject -property @{x = 1; y =2}

它为您提供了大致相同的对象,但如果您想对它们进行排序/分组/格式化/导出,则psobject会更好



3> EBGreen..:

对不起,即使选择的答案是好的,我也无法抗拒这个hacky one line的回答:

New-Object PsObject | Select-Object x,y | %{$_.x = 12; $_.y = 50; $foo = $_; }

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有