You are on page 1of 1

$sourceFolder = "C:\DataToBackup"

$destinationFolder = "E:\BackupFolder"
$intervalMinutes = 60

while ($true) {
$date = Get-Date -Format "yyyyMMdd_HHmmss"
$logFile = "E:\BackupLogs\backup_$date.txt"

Write-Host "Starting backup process at $(Get-Date -Format "yyyy-MM-dd


HH:mm:ss")..." | Tee-Object -FilePath $logFile -Append

$filesToCopy = Get-ChildItem $sourceFolder -Recurse | Where-Object { !


$_.PSIsContainer }

if ($filesToCopy.Count -eq 0) {
Write-Host "No files to backup." | Tee-Object -FilePath $logFile -Append
}
else {
Write-Host "Copying files..." | Tee-Object -FilePath $logFile -Append
$filesToCopy | Copy-Item -Destination $destinationFolder -Force | Tee-
Object -FilePath $logFile -Append
Write-Host "Backup completed." | Tee-Object -FilePath $logFile -Append
}

Write-Host "Waiting $intervalMinutes minutes until next backup..." | Tee-Object


-FilePath $logFile -Append
Start-Sleep -Seconds ($intervalMinutes * 60)
}

You might also like