ForEach 内的 PowerShell 中的 Format-Table
Format-Table in PowerShell inside a ForEach
不确定我在这里做错了什么,我知道这与它在 ForEach 循环内这一事实有关。我试过移动下面的代码。即使代码一半一半(一半在循环中,一半在循环外似乎不起作用)。 PowerShell 还是新手,我知道我需要在每次迭代中为 $table 设置变量,或者将它们存储在某个位置并稍后读取。
foreach ($gp in $GPINFO) {
# Code that gets the values for $gp, $aclBefore and $aclAfter is here
$table = new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
$table | Format-Table GPO_Name,Old_Owner,New_Owner
}
如果你能帮我弄清楚我做错了什么,那就太好了,我知道每次 ForEach 从 $GPINFO 中获取 $gp 时,它是 运行 $table 东西,那是我的问题。因此,我最终得到的不是一个连续的 table,而是多个 table,每个都有一组数据。
提前致谢
循环完成后简单输出table即可。
$table = foreach ($gp in $GPINFO) {
# Code that gets the values for $aclBefore and $aclAfter is here
new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
}
$table | Format-Table
foreach
循环中的任何输出都将存储在 $table
中。每次迭代都会输出一个对象,最终创建一个存储在 $table
.
中的对象数组
你只是不能从 foreach () 进行管道传输。这是语言中经常出现的奇怪部分。其他方式:
Foreach 对象:
$GPINFO | foreach-object {
$gp = $_
new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
} | Format-Table GPO_Name,Old_Owner,New_Owner
调用运算符和脚本块:
& {
foreach ($gp in $GPINFO) {
new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
}
} | Format-Table GPO_Name,Old_Owner,New_Owner
不确定我在这里做错了什么,我知道这与它在 ForEach 循环内这一事实有关。我试过移动下面的代码。即使代码一半一半(一半在循环中,一半在循环外似乎不起作用)。 PowerShell 还是新手,我知道我需要在每次迭代中为 $table 设置变量,或者将它们存储在某个位置并稍后读取。
foreach ($gp in $GPINFO) {
# Code that gets the values for $gp, $aclBefore and $aclAfter is here
$table = new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
$table | Format-Table GPO_Name,Old_Owner,New_Owner
}
如果你能帮我弄清楚我做错了什么,那就太好了,我知道每次 ForEach 从 $GPINFO 中获取 $gp 时,它是 运行 $table 东西,那是我的问题。因此,我最终得到的不是一个连续的 table,而是多个 table,每个都有一组数据。
提前致谢
循环完成后简单输出table即可。
$table = foreach ($gp in $GPINFO) {
# Code that gets the values for $aclBefore and $aclAfter is here
new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
}
$table | Format-Table
foreach
循环中的任何输出都将存储在 $table
中。每次迭代都会输出一个对象,最终创建一个存储在 $table
.
你只是不能从 foreach () 进行管道传输。这是语言中经常出现的奇怪部分。其他方式:
Foreach 对象:
$GPINFO | foreach-object {
$gp = $_
new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
} | Format-Table GPO_Name,Old_Owner,New_Owner
调用运算符和脚本块:
& {
foreach ($gp in $GPINFO) {
new-object psobject -Property @{
GPO_Name = $gp.DisplayName
Old_Owner = $aclBefore
New_Owner = $aclAfter
}
}
} | Format-Table GPO_Name,Old_Owner,New_Owner