计算具有特定名称的目录,该名称也包含文件

时间:2016-07-27 18:19:28

标签: powershell

我目前正在开发一个脚本,它将计算所有目录(在指定路径\\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

1 个答案:

答案 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"如果你没有将它附加到你正在迭代的文件夹路径上。