Как подсчитать количество файлов, используя дату создания старше 90 дней в сценарии Windows PowerShell? - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть требование получить количество файлов старше 90 дней из всего каталога, который содержит несколько подпапок.Я попробовал ниже сценарий, но не повезло.

dir Z:\EDI\ |
    ? {$_.CreationTime -ge (Get-Date).AddDays(-90) -and !$_.PsIsContainer} |
    group {$_.CreationTime.ToShortDateString()} |
    select Name, Count

1 Ответ

0 голосов
/ 14 декабря 2018

вот несколько иной способ получить информацию.[ ухмылка ]

используется математика даты для получения возраста в днях и сравнения его с максимально допустимым.затем он помещает это в пользовательский объект, который можно использовать позже для получения деталей.

$MaxAgeInDays = 90
$Today = (Get-Date).Date
$SourceDir = $env:TEMP

$TooOldFileList = Get-ChildItem -LiteralPath $SourceDir -File -Recurse |
    Where-Object {($Today - $_.CreationTime).Days -ge $MaxAgeInDays} |
    Sort-Object CreationTime |
    ForEach-Object {
        [PSCustomObject]@{
            AgeInDays = ($Today - $_.CreationTime).Days
            FileName = $_.FullName
            }
        }

$OldestFile = $TooOldFileList |
    Select-Object -First 1

''
'Max allowed age in days = {0, 5}' -f $MaxAgeInDays
'Number of too-old files = {0, 5}' -f $TooOldFileList.Count
'Oldest file age in days = {0, 5}' -f $OldestFile.AgeInDays
'Oldest file name        = {0}' -f $OldestFile.FileName

вывод ...

Max allowed age in days =    90
Number of too-old files =   296
Oldest file age in days =  1136
Oldest file name        = C:\Temp\FXSAPIDebugLogFile.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...