Skip to content
【腾讯云】WorkBuddy 全场景 AI 办公工作台,团队旗舰版低至198元/月
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中
【腾讯云】智能体开发平台ADP,新客首月专属价,最高直降 880 元,构建、分发、治理企业级 Agent,一站式开启智能体生产力。
广告位招租
在此投放您的广告内容
联系我

Windows 计划任务 ​

提示信息

说明: 有时我们临时要创建一个计划任务,写代码太不划算,使用Windows 自带「任务计划程序」可以应对一下。

Windows 自带「任务计划程序」本身不能直接“访问网址”,但可以用它启动浏览器打开网页,或者用 PowerShell/curl 静默请求 URL(适合调接口/心跳/自动签到)。下面分两种场景给你可直接抄的配置。

1. 打开任务计划程序 ​

Win + R → 输入 taskschd.msc 回车 

右侧 → 「创建基本任务」(简单定时)或「创建任务」(高级,推荐用这个)

2.场景 A:定时用浏览器弹出网页(看得见) ​

创建任务 → 触发器设好时间 → 操作里这样填:

程序或脚本:chrome.exe(或 msedge.exe / iexplore.exe)

添加参数:https://example.com

起始于:留空或填浏览器安装目录

如果 chrome.exe 提示找不到,就用完整路径,例如

C:\Program Files\Google\Chrome\Application\chrome.exe

命令行一键版(每天 9:00 打开网页):

bat
SchTasks /Create /SC DAILY /TN "OpenSite" /TR "C:\Windows\explorer.exe https://example.com" /ST 09:00

用 explorer.exe 会调用系统默认浏览器,路径最短。

3. 场景 B:后台静默访问 URL(不弹窗,调接口/定时触发) ​

方案 1:PowerShell(Win10/11 自带)

程序或脚本:powershell.exe

添加参数:

powershell
-ExecutionPolicy Bypass -Command Invoke-WebRequest 'https://example.com/api/cron' -UseBasicParsing

如果要存返回内容,加 -OutFile C:\log.txt。

方案 2:curl(Win10+ 内置)

程序或脚本:curl

添加参数:https://example.com/api/cron

或写个 call.url.bat:

bat
@echo off
curl -X GET "https://example.com/api/cron"

任务里启动这个 bat 就行。

命令行建任务(每天 2:00 静默请求):

bat
schtasks /create /tn "DailyApiCall" /tr "powershell -ExecutionPolicy Bypass -Command Invoke-WebRequest 'https://example.com/api/cron' -UseBasicParsing" /sc DAILY /st 02:00

4. 容易踩的坑 ​

无桌面环境:选“不管用户是否登录都要运行”时,浏览器弹窗模式看不到界面,这种场景必须用 PowerShell/curl 静默方案。

权限:调接口建议勾「以最高权限运行」;内网服务可用 /ru SYSTEM。

拦截:首次运行可能被杀软/电脑管家拦,放行一次即可。

URL 带参数:& 在 bat 里要引号包住整个 URL,PowerShell 里用单引号最稳。

5.在C#程序中调用系统计划任务 ​

C# 里“计划任务”其实分两条路:接管 Windows 任务计划程序(Schtasks COM)​ 和 在 .NET 进程内自己跑调度引擎。

下面我们只谈论对接 Windows 自带任务计划程序(Schtasks)

适合:希望任务由系统级 Scheduler 托管、开机即生效、不依赖你程序常驻。

TaskScheduler Managed Wrapper(NuGet: TaskScheduler,dahall 维护,支持 .NET Framework / .NET Core / .NET 6~9)

C# 里操作 Windows 任务计划最成熟的封装,等价于你前面手动在 taskschd.msc 里点的所有东西(触发器、操作、条件、设置全暴露)。

最小示例:

c#
using Microsoft.Win32.TaskScheduler;
using var ts = new TaskService();
var td = ts.NewTask();
td.Triggers.Add(new DailyTrigger { DaysInterval = 1, StartBoundary = DateTime.Today.AddHours(9) });
td.Actions.Add(new ExecAction("powershell.exe",
    "-Command Invoke-WebRequest 'https://example.com' -UseBasicParsing", null));
ts.RootFolder.RegisterTaskDefinition("DailyPing", td);

提示

优点:和系统任务计划完全一致、权限/登录态好控;

缺点:只限 Windows,复杂调度逻辑写起来啰嗦;

最近更新