在 PowerShell ForEach 循环中可以有多个 IN 条件吗?

分区表

我在函数中有以下示例代码:

[array]$ARR = $null

foreach ($file in $fileTable.identical)
{
   [hashtable]$HT=@{
       'FileName' = $file.Name
       'AppName' = $file.App
       'GroupName' = $file.Group
       'Valid' = $true
   }
   $ARR += $HT
}
foreach ($file in $fileTable.removed)
{
   [hashtable]$HT=@{
       'FileName' = $file.Name
       'AppName' = $file.App
       'GroupName' = $file.Group
       'Valid' = $false
   }
   $ARR += $HT
}
foreach ($file in $fileTable.modified)
{
   [hashtable]$HT=@{
       'FileName' = $file.Name
       'AppName' = $file.App
       'GroupName' = $file.Group
       'Valid' = $false
   }
   $ARR += $HT
}

return $ARR

为其他 $fileTable.[properties] 增加 3 个 foreach 循环,其中 'Valid' = $false 也是如此。

不必多次重复代码块,我想做如下事情:

foreach (($file in $fileTable.removed) -and ($file in $fileTable.modified))
{
   [hashtable]$HT=@{
       'FileName' = $file.Name
       'AppName' = $file.App
       'GroupName' = $file.Group
       'Valid' = $false
   }
}

所以只有在哈希表中不同的变量才会是 $value。$fileTable 是一个 pscustomobject,具有一些自定义属性,如相同、修改、添加、删除。

我知道我想要的在 foreach 循环中是不可能的,但我正在寻找类似的解决方案来减少代码行数。任何帮助,将不胜感激 :)

谢谢!

用户6811411

结合您和PetSerAl的方法。

编辑:合并@mklement0的提示

$ARR = foreach($Variant in 'identical', 'removed', 'modified'){
  $fileTable.$Variant | ForEach-Object{
    [PSCustomObject]@{
      'FileName'  = $_.Name
      'AppName'   = $_.App
      'GroupName' = $_.Group
    # 'Valid'     = if($Variant -eq 'identical'){$True} else {$False}
      'Valid'     = $Variant -eq 'identical'
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

可以在PowerShell中简化以下嵌套的foreach循环吗?

在PowerShell ForEach循环中内联命令执行

在Foreach循环中组合Powershell命令

在 foreach 循环中执行 powershell 命令

无法在 PowerShell 的 Foreach 循环中创建对象

ForEach循环中的变量被覆盖-Powershell

我可以在 foreach 循环中使用 eloquent 模型吗

Powershell:ForEach 循环

PowerShell / CLI:具有多个阵列的“ Foreach”循环

过滤Powershell中具有多个条件的Foreach-Object结果不起作用

Powershell在foreach循环中处理单个数组与foreach循环中的多数组

我可以在for循环中添加条件吗?

如何从 Foreach 循环中获取添加到集合中的 Powershell 对象的所有值?

在Powershell中嵌套foreach循环

PowerShell嵌套ForEach循环的问题

foreach powershell 循环打开项

具有多个变量的ForEach-Powershell

关于多个集合的Powershell foreach

在尝试结果PowerShell中的foreach循环中修改if结果

PowerShell:Foreach 循环中的增量计数器

如何在powershell的foreach循环中运行函数列表?

有什么方法可以简化此foreach循环吗?

ForEach真的是ForEach-Object(Powershell)的别名吗

我可以在ForEach循环中的TextField绑定内添加变量吗?

我们可以在PHP的foreach循环中使用IterateAggregate或Iterator吗?

我可以在一个foreach循环中使用两组变量吗?

条件的顺序与while循环中的多个条件有关吗?

powershell对数组循环,foreach方法,字符串感到困惑吗?

PHP - 如果带有 **AND** 的条件在 foreach 循环中不起作用