在ForEach内部的PowerShell中格式化表
不确定我在这里做错了什么,我知道这与它在ForEach循环中的事实有关。我已经尝试过移动下面的代码。即使使用一半和一半的代码(半入半出循环似乎也不起作用)。对于PowerShell来说还是个新手,我知道我需要在每次迭代时将变量转换为$table,或者将它们存储在某个位置,稍后再读取它们在ForEach内部的PowerShell中格式化表,powershell,foreach,formattable,Powershell,Foreach,Formattable,不确定我在这里做错了什么,我知道这与它在ForEach循环中的事实有关。我已经尝试过移动下面的代码。即使使用一半和一半的代码(半入半出循环似乎也不起作用)。对于PowerShell来说还是个新手,我知道我需要在每次迭代时将变量转换为$table,或者将它们存储在某个位置,稍后再读取它们 foreach ($gp in $GPINFO) { # Code that gets the values for $gp, $aclBefore and $aclAfter is here
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 = 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
中的对象数组,只需在循环完成后输出该表即可
$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()开始吹管。这是语言中经常出现的一个奇怪的部分。其他途径: 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
1) 您到底希望发生什么,然后2)运行代码时实际发生了什么?您希望格式化循环后收集的列表…fornat表将显示字符串1)您到底希望发生什么,然后2)当您运行代码时,实际会发生什么?您想格式化循环后收集的列表…fornat表将显示StringThank,我尝试了,但是,我仍然在foreach中的$table中在新对象的前面。谢谢,我尝试了,但是,我仍然在foreach中的$table中在新对象的前面。