Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 将成员/列附加到PSObject_Powershell - Fatal编程技术网

Powershell 将成员/列附加到PSObject

Powershell 将成员/列附加到PSObject,powershell,Powershell,我正在寻找一种在PowerShell中向对象添加额外成员而不创建新对象和循环的方法 通常,当我运行一个脚本时,它将再次是一个服务器列表,我想根据返回的数据附加一些额外的信息,但如果不创建一个新的PSObject并在现有对象中循环并逐行添加额外的成员,我找不到一种方法来执行此操作(下面的简化示例) 有没有办法做到这一点 get-childitem | Select-Object "ServerName", Name, DirectoryName 上面的代码创建了额外的成员,但我还没有找到一种方法

我正在寻找一种在PowerShell中向对象添加额外成员而不创建新对象和循环的方法

通常,当我运行一个脚本时,它将再次是一个服务器列表,我想根据返回的数据附加一些额外的信息,但如果不创建一个新的PSObject并在现有对象中循环并逐行添加额外的成员,我找不到一种方法来执行此操作(下面的简化示例)

有没有办法做到这一点

get-childitem | Select-Object "ServerName", Name, DirectoryName
上面的代码创建了额外的成员,但我还没有找到一种方法来用我要查找的详细信息填充额外的成员。

当然,您可以使用计算属性(有关它们的详细信息):


也可以创建新对象,而无需添加成员调用:

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

$FileListOBJ

很好,我知道必须有一个更简单的方法
get-childitem | Select-Object @{l="ServerName"; e={"XServerName"}}, Name, DirectoryName
$FileList = get-childitem | Select-Object Name, DirectoryName
$FileListOBJ = @()
foreach ($item in $FileList)
{    
    $FileListOBJ += [PSCustomObject]@{ServerName="ServerName";FileName=$item.Name;Directory=$item.DirectoryName}
}

$FileListOBJ