首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PowerShell ForEach循环中可以有多个IN条件吗?

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

Stack Overflow用户
提问于 2019-04-13 05:21:28
回答 1查看 2.5K关注 0票数 0

函数中有以下示例代码:

代码语言:javascript
复制
[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

+3多个用于其他$fileTable.properties的foreach循环,其中'Valid‘= $false。

我不需要多次重复代码块,而是执行如下操作:

代码语言:javascript
复制
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循环中是不可能的,但是我正在寻找一个类似的解决方案来减少代码行数。如能提供任何帮助,将不胜感激:)

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-13 06:14:16

结合您和PetSerAl的方法。

编辑:合并了@mklement0的提示

代码语言:javascript
复制
$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'
    }
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55662301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档