本文目录导读:

是的,完全可以!使用脚本自动创建任务计划(Windows 任务计划程序)是一个非常实用的自动化操作,以下是几种常用的方法:
PowerShell 脚本(推荐,最灵活)
# 创建计划任务脚本示例
$action = New-ScheduledTaskAction -Execute "C:\Path\YourApp.exe" -Argument "-参数1 值1"
$trigger = New-ScheduledTaskTrigger -Daily -At "09:00AM"
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "MyDailyTask" `
-Action $action `
-Trigger $trigger `
-Principal $principal `
-Settings $settings
常用触发器示例:
# 每天凌晨2点 $trigger = New-ScheduledTaskTrigger -Daily -At "02:00AM" # 系统启动时 $trigger = New-ScheduledTaskTrigger -AtStartup # 用户登录时 $trigger = New-ScheduledTaskTrigger -AtLogOn # 每周一上午8点 $trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At "08:00AM" # 每30分钟重复一次 $trigger = New-ScheduledTaskTrigger -Daily -At "00:00" -RepetitionInterval (New-TimeSpan -Minutes 30) -RepetitionDuration (New-TimeSpan -Days 365)
批处理文件(schtasks命令)
@echo off REM 创建每天上午9点运行的计划任务 schtasks /create /tn "MyDailyBackup" /tr "C:\Scripts\backup.bat" /sc daily /st 09:00 /ru SYSTEM REM 创建每周一运行的任务 schtasks /create /tn "WeeklyReport" /tr "C:\Scripts\report.exe" /sc weekly /d MON /st 10:00 REM 创建系统启动时运行的任务 schtasks /create /tn "StartupTask" /tr "C:\Program Files\App\app.exe" /sc onstart
VBScript 脚本
Set scheduler = CreateObject("Schedule.Service")
Call scheduler.Connect()
Set taskDefinition = scheduler.NewTask(0)
' 设置触发器(每天上午8点)
Set trigger = taskDefinition.Triggers.Create(1) ' 1 = 每日任务
trigger.StartBoundary = "2024-01-01T08:00:00"
trigger.DaysInterval = 1
' 设置操作
Set action = taskDefinition.Actions.Create(0) ' 0 = 执行程序
action.Path = "C:\Windows\System32\notepad.exe"
action.Arguments = "C:\test.txt"
' 注册任务
Call scheduler.GetFolder("\").RegisterTaskDefinition("MyVBSTask", taskDefinition, 6, "", "", 3)
实用脚本模板
PowerShel 带错误处理的完整脚本
param(
[string]$TaskName = "MyAutoTask",
[string]$ExecPath = "C:\Scripts\myapp.exe",
[string]$ExecArgs = "",
[string]$TaskTime = "06:00AM"
)
try {
# 检查任务是否已存在,存在则先删除
$existing = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
if ($existing) {
Write-Host "任务 '$TaskName' 已存在,正在更新..." -ForegroundColor Yellow
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
}
# 创建新任务
$action = New-ScheduledTaskAction -Execute $ExecPath -Argument $ExecArgs
$trigger = New-ScheduledTaskTrigger -Daily -At $TaskTime
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName $TaskName `
-Action $action `
-Trigger $trigger `
-Principal $principal `
-Description "由脚本自动创建的定时任务" `
-Force
Write-Host "✓ 任务计划 '$TaskName' 创建成功!" -ForegroundColor Green
Write-Host " 执行路径: $ExecPath"
Write-Host " 执行时间: 每天 $TaskTime"
}
catch {
Write-Host "✗ 创建失败: $_" -ForegroundColor Red
exit 1
}
实用场景脚本
自动备份脚本
# 创建每日备份任务 $backupScript = @" robocopy D:\重要数据 E:\Backup /MIR /R:3 /W:10 /LOG+:C:\Logs\backup.log "@ # 保存为批处理文件 Set-Content -Path "C:\Scripts\daily_backup.bat" -Value $backupScript # 创建计划任务 $action = New-ScheduledTaskAction -Execute "C:\Scripts\daily_backup.bat" $trigger = New-ScheduledTaskTrigger -Daily -At "02:00AM" Register-ScheduledTask -TaskName "DailyBackup" -Action $action -Trigger $trigger
远程创建任务
# 在远程电脑上创建任务
$cred = Get-Credential
Invoke-Command -ComputerName "Server01" -Credential $cred -ScriptBlock {
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\Scripts\cleanup.ps1"
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At "03:00AM"
Register-ScheduledTask -TaskName "WeeklyCleanup" -Action $action -Trigger $trigger
}
注意事项:
- 权限要求:需要管理员权限运行
- 路径格式:使用完整路径,避免相对路径
- 触发器类型:支持 daily, weekly, monthly, onstart, onlogon 等
- 错误处理:建议添加 try-catch 和日志记录
- 测试环境:先在测试环境验证后再部署到生产环境
使用这些脚本可以大大提高批量部署和管理计划任务的效率,特别适合运维自动化和批量部署场景。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播