2016-08-24 82 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的方法我想要了解详细信息。

回答

0

当然,你可以使用一个计算财产(更多关于他们here):

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

完美,我知道必须有一个更简单的方法 – Doug

1

你还可以创建新的对象,而无需外接成员的呼叫:

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

$FileListOBJ 
相关问题