Нужен скрипт PowerShell для поиска папок, в которых вчера не было файлов - PullRequest
0 голосов
/ 02 января 2019

Цикл по текстовому файлу, который содержит папку Locations

foreach ($line in Get-Content "C:\Backup\sample.txt") {
    Get-ChildItem $line | Where {
        $_.LastWriteTime -gt (Get-Date).AddDays(-1)
    } | select Directoryname, Name, LastWriteTime, @{Name="Size (GB)"; Expression={[Math]::Round($_.Length/1MB, 1)}}
}

Таким образом, я могу только получить файлы, которые были изменены вчера.

Я хочу перечислитьпапки, которые имеют и не имеют файлы, измененные вчера.

Если в папке содержатся файлы, которые были изменены вчера (дата изменения - как вчера), перечислите эти имена файлов, имя папки и их размеры (ГБ).

А также Write-Host в качестве успешного резервного копирования.

То же самое должно произойти с папками, в которых нет файлов с датой изменения, как вчера.Write-Host резервное копирование не завершено.

1 Ответ

0 голосов
/ 03 января 2019

Я предполагаю, что вы считаете резервную копию неполной, если хотя бы в одной папке не содержится файл, измененный за последние 24 часа.

$refdate  = (Get-Date).AddDays(-1)
$complete = $true
$results = foreach ($line in Get-Content "C:\Backup\sample.txt") {
    $result = Get-ChildItem $line |
              Where-Object { $_.LastWriteTime -gt $refdate } |
              Select-Object Directoryname, Name, LastWriteTime,
                  @{n="Size (GB)";e={[Math]::Round($_.Length/1MB, 1)}}
    if ($result) {
        $result
    } else {
        $complete = $false
    }
}

if ($complete) {
    Write-Host 'Backup complete'
} else {
    Write-Host 'Backup incomplete'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...