项目初始化

This commit is contained in:
2026-07-02 11:31:16 +08:00
commit eef4c76e3f
64 changed files with 13369 additions and 0 deletions

72
register-daily-task.ps1 Normal file
View File

@@ -0,0 +1,72 @@
# Register a Windows scheduled task to run run-daily.ps1
# Usage:
# .\register-daily-task.ps1
# .\register-daily-task.ps1 -Time "08:50"
# .\register-daily-task.ps1 -Unregister
param(
[string]$Time = "08:50",
[string]$TaskName = "DailyRobots",
[switch]$Unregister
)
$ErrorActionPreference = "Stop"
$Root = Split-Path -Parent $MyInvocation.MyCommand.Path
$RunScript = Join-Path $Root "run-daily.ps1"
$LogDir = Join-Path $Root "logs"
$LogFile = Join-Path $LogDir "scheduled-run.log"
if ($Unregister) {
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -ErrorAction SilentlyContinue
Write-Host "Removed scheduled task: $TaskName"
exit 0
}
if (-not (Test-Path $RunScript)) {
throw "Not found: $RunScript"
}
if (-not (Test-Path $LogDir)) {
New-Item -ItemType Directory -Path $LogDir | Out-Null
}
# Append stdout/stderr to logs/scheduled-run.log for troubleshooting
$Argument = @(
"-NoProfile",
"-ExecutionPolicy", "Bypass",
"-Command",
"& { Set-Location '$Root'; & '$RunScript' *>&1 | Tee-Object -FilePath '$LogFile' -Append; exit `$LASTEXITCODE }"
) -join " "
$Action = New-ScheduledTaskAction `
-Execute "powershell.exe" `
-Argument $Argument `
-WorkingDirectory $Root
$Trigger = New-ScheduledTaskTrigger -Daily -At $Time
$Settings = New-ScheduledTaskSettingsSet `
-AllowStartIfOnBatteries `
-DontStopIfGoingOnBatteries `
-StartWhenAvailable `
-ExecutionTimeLimit (New-TimeSpan -Hours 2)
$Principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Limited
Register-ScheduledTask `
-TaskName $TaskName `
-Action $Action `
-Trigger $Trigger `
-Settings $Settings `
-Principal $Principal `
-Description "Generate and push daily report (run-daily.ps1)" `
-Force | Out-Null
Write-Host "Scheduled task registered:"
Write-Host " Name: $TaskName"
Write-Host " Time: daily at $Time"
Write-Host " Script: $RunScript"
Write-Host " Log: $LogFile"
Write-Host ""
Write-Host "Test now: Start-ScheduledTask -TaskName '$TaskName'"
Write-Host "Remove: .\register-daily-task.ps1 -Unregister"