2016-08-24 83 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 
相關問題