我试图以递归方式检查文件夹是否包含去年编辑过的任何文件。然后在这种情况下它处于非活动状态,并且所有文件都是只读的。因此,我还需要执行一项检查,检查文件夹中的所有文件,而不仅仅是非活动文件,是否只读,因为在这种情况下,它已经被“标记”,不需要包含在列表中非活动文件夹。
目前我有:
function FolderInactive{
Param([string]$Path)
$date = (Get-Date).AddDays(-365)
Get-ChildItem $Path -Recurse -File | ForEach-Object {
if ($_.LastWriteTime -ge $date -or $_.IsReadOnly -eq $false) {
$false
}
}
$true
}
这对文件最后编辑的部分有意义,但在只读部分中似乎不正确。它应该是真是假?应该是 - 或 - 和? 如果所有文件都处于活动状态,但其中一个文件是只读的,则仍会将其标记为非活动状态。这似乎不对。我无法在一个循环中完成它。
我当然可以在两个循环中执行此操作,但我正在处理大文件系统,因此如果可能的话,我希望在一个循环中执行此操作。