2016-08-24 23 views
1

新しいオブジェクトを作成したりループしたりせずにPowerShellのオブジェクトに余分なメンバーを追加する方法を探しています。PSObjectにメンバー/列を追加する

通常、スクリプトを実行すると、サーバーのリストになりますが、返されているデータに対して追加情報を追加したいのですが、新しいPSObjectを作成せずにその方法を見つけることができません。既存のオブジェクトをループし、行によって余分な部材行を追加すること(以下単純化した例)

$FileList = get-childitem | Select-Object Name, DirectoryName 
$FileListOBJ = @() 

foreach ($item in $FileList) 
{  
    $Temp = New-Object PSObject 
    $Temp | Add-Member NoteProperty ServerName "XServerName" 
    $Temp | Add-Member NoteProperty FileName $item.Name 
    $Temp | Add-Member NoteProperty Directory $item.DirectoryName  

    $FileListOBJ += $Temp 
} 

$FileListOBJ 

これらの線に沿ってそれを行う方法がある...

get-childitem | Select-Object "ServerName", Name, DirectoryName 

上記のコードが作成余分なメンバーが、私はaddiを埋める方法を見つけることができなかった私が後にしている細部を持つメンバー。あなたはまた、アドオンメンバーコールせずに新しいオブジェクトを作成することができます

get-childitem | Select-Object @{l="ServerName"; e={"XServerName"}}, Name, DirectoryName 

答えて

0

確かに、あなたは計算プロパティ(詳細は、それらについてhere)を使用することができます

$FileList = get-childitem | Select-Object Name, DirectoryName 
$FileListOBJ = @() 
foreach ($item in $FileList) 
{  
    $FileListOBJ += [PSCustomObject]@{ServerName="ServerName";FileName=$item.Name;Directory=$item.DirectoryName} 
} 

$FileListOBJ 
+0

パーフェクト、私はそれを行うより簡単な方法がなければならないことを知っていた – Doug

1

関連する問題