# Setup Daily Backup Task via PowerShell $TaskName = "TradingBotDailyBackup" $ScriptPath = "$PSScriptRoot\daily_backup.bat" $Time = "00:00" Write-Host "================================================================================" Write-Host " Setting up Daily Backup Task" Write-Host "================================================================================" Write-Host "" Write-Host "Task Name: $TaskName" Write-Host "Script: $ScriptPath" Write-Host "Time: $Time (midnight)" Write-Host "" # Check if task exists $ExistingTask = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue if ($ExistingTask) { Write-Host "[INFO] Task already exists, will be replaced..." Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false } # Create Action $Action = New-ScheduledTaskAction -Execute $ScriptPath -WorkingDirectory $PSScriptRoot # Create Trigger (Daily at midnight) $Trigger = New-ScheduledTaskTrigger -Daily -At $Time # Create Settings $Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable # Register Task Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Settings $Settings -Description "Daily backup of trading_bot.db" -User $env:USERNAME Write-Host "" Write-Host "================================================================================" Write-Host " Task created successfully!" Write-Host "================================================================================" Write-Host "" Write-Host "Verification:" # Verify $Task = Get-ScheduledTask -TaskName $TaskName $Task | Select-Object TaskName, State | Format-Table Write-Host "" Write-Host "Next Run Time:" $Task | Get-ScheduledTaskInfo | Select-Object NextRunTime | Format-Table Write-Host "" Write-Host "[OK] Daily backup will run at midnight (00:00)" Write-Host "[OK] Keeps last 7 days of backups" Write-Host "[OK] Location: backups/trading_bot_daily_YYYYMMDD.db" Write-Host ""