Powershell の最新バージョンには、JavaScript のような機能がありますか。
var point = new Object();
point.x = 12;
point.y = 50;
そうでない場合、同等または回避策は何ですか?
更新
すべてのコメントを読む
Powershell の最新バージョンには、JavaScript のような機能がありますか。
var point = new Object();
point.x = 12;
point.y = 50;
そうでない場合、同等または回避策は何ですか?
更新
すべてのコメントを読む
構文は、add-member コマンドレットを介して存在する機能によって直接サポートされていません。少し前に、この機能を汎用のタプル関数にラップしました。
これにより、これらのオブジェクトを 1 行で作成できます。
$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
簡単な方法としては、まずハッシュテーブルです (V1 で利用可能)
$obj = @{}
$obj.x = 1
$obj.y = 2
2 つ目は、PSObject です (V2 では簡単です)。
$obj = new-object psobject -property @{x = 1; y =2}
ほぼ同じオブジェクトが得られますが、並べ替え/グループ化/フォーマット/エクスポートする場合は psobjects の方が優れています
申し訳ありませんが、選択した回答は優れていますが、ハッキーな1行の回答に抵抗できませんでした:
New-Object PsObject | Select-Object x,y | %{$_.x = 12; $_.y = 50; $foo = $_; }
PowerShell でオブジェクトを作成する方法
http://blogs.msdn.com/powershell/archive/2009/03/11/how-to-create-an-object-in-powershell.aspx
次のように実行できます。
$point = New-Object Object |
Add-Member NoteProperty x ([int] 12) -passThru |
Add-Member NoteProperty y ([int] 15) -passThru
他の場所でのコメントの 1 つに関して、カスタム オブジェクトは、オブジェクトに名前付きプロパティがあることを期待するコマンドレットでより適切に機能するため、ハッシュ テーブルよりも役立つ場合があります。例えば:
$mypoints | Sort-Object y # mypoints sorted by y-value
$point = "" | Select @{Name='x'; Expression={12}} ,@{Name='y'; Expression={15}}
またはより直感的に
$point = "" | Select x,y
$point.x=12; $point.y=15