我目前正在开发一个脚本,它将计算所有目录(在指定路径\\servername\logs\failures
内),其命名约定为" P0 *"或" MININT *" - 但名为" MININT *"的文件夹还必须有一个包含指定日志文件的子文件夹。此外,它应该只计算过去24小时内创建的文件夹。
这是我当前的代码,它一直返回零值,我不知道为什么。我一直在寻找几个小时,并尝试使用递归,Test-Path
等不同的方法无济于事。
$imagefailures = Get-ChildItem '\\servername\logs\failures' -Directory |
Where-Object {
($_.Name -like "P0*") -or
(($_.Name -like "MININT*") -and (Test-Path "\WinPE_TS_X_Win\SMSTSLog\Get-Name.log")) -and
($_.LastWriteTime -gt (Get-Date).AddHours(-24))
} | Measure-Object | select -ExpandProperty Count
答案 0 :(得分:2)
试试这个:
$imagefailures = Get-ChildItem '\\servername\logs\failures' -Directory |
Where-Object {
($_.Name -like "P0*") -or
(($_.Name -like "MININT*") -and (Test-Path "$($_.FullName)\WinPE_TS_X_Win\SMSTSLog\Get-Name.log")) -and
($_.LastWriteTime -gt (Get-Date).AddHours(-24))`
} | Measure-Object | select -ExpandProperty Count
您正在测试的路径将始终只是" \ WinPE_TS_X_Win \ SMSTSLog \ Get-Name.log"如果你没有将它附加到你正在迭代的文件夹路径上。