首页 > 解决方案 > 在 ForEach 循环中使用 Where 方法

问题描述

只是好奇是否可以将 Where 方法与 ForEach 循环结合使用?

$numbers = @(1..10)

ForEach($number in $numbers.Where({$number = 2})){

    Write-Host "the number is $number"

}

好的,想通了

事实证明,您也可以使用以下方法使用 Get-ChildItem 执行此操作

$start = Get-Date
$end = (Get-Date).AddDays(-1)
$sourcePath = Get-ChildItem -path "C:\"

ForEach($file in ($sourcePath.where({$_.CreationTime -ge $end -and 
$_.CreationTime -le $start}))){

    Write-Host $file.Name

}

谢谢!

标签: powershell

解决方案


有可能,与在 $numbers 相同的行上进行嵌套相比,您确实得到了令人讨厌的嵌套级别。

$numbers = @(1..10)

ForEach($number in ($numbers.Where({$_ -eq 2}))){

    Write-Host "the number is $number"

}

推荐阅读