Powershell 使用特定名称计算也包含文件的目录数

Powershell 使用特定名称计算也包含文件的目录数,powershell,Powershell,我目前正在编写一个脚本,该脚本将计算所有命名约定为“P0*”或“MININT*”的目录(在指定路径中,\\servername\logs\failures),但名为“MININT*”的文件夹也必须有包含指定日志文件的子文件夹。此外,它应该只计算在过去24小时内创建的文件夹 这是我当前的代码,它一直返回一个零值,我不知道为什么。我已经搜索了几个小时,尝试了使用递归、测试路径等不同的方法,但都没有结果 $imagefailures = Get-ChildItem '\\servername\logs

我目前正在编写一个脚本,该脚本将计算所有命名约定为“P0*”或“MININT*”的目录(在指定路径中,
\\servername\logs\failures
),但名为“MININT*”的文件夹也必须有包含指定日志文件的子文件夹。此外,它应该只计算在过去24小时内创建的文件夹

这是我当前的代码,它一直返回一个零值,我不知道为什么。我已经搜索了几个小时,尝试了使用递归、
测试路径等不同的方法,但都没有结果

$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
试试这个:

$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\u TS\u X\u Win\SMSTSLog\Get Name.log”。

尝试以下操作:

$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\u TS\u X\u Win\SMSTSLog\Get Name.log”。

这就成功了。我知道这很接近非常感谢你的帮助!这就成功了。我知道这很接近非常感谢你的帮助!