循环遍历包含文件夹位置的文本文件
foreach ($line in Get-Content "C:Backupsample.txt") {
Get-ChildItem $line | Where {
$_.LastWriteTime -gt (Get-Date).AddDays(-1)
} | select Directoryname, Name, LastWriteTime, @{Name="Size (GB)"; Expression={[Math]::Round($_.Length/1MB, 1)}}
}
这样我只能获取昨天修改的文件。
我想要的是列出昨天修改和没有修改文件的文件夹。
如果文件夹包含昨天修改的文件(修改日期为昨天),请列出这些文件名、文件夹名称及其大小 (GB)。
并且Write-Host
备份成功。
修改日期与昨天相同的文件的文件夹也应该如此。 Write-Host
备份未完成。
我将假设您认为如果至少一个文件夹不包含过去 24 小时内修改的文件,则备份不完整。
$refdate = (Get-Date).AddDays(-1)
$complete = $true
$results = foreach ($line in Get-Content "C:Backupsample.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'
}