如何在Windows系统中使用Curl每分钟定时请求一次URL?
如何在Windows系统中使用Curl每分钟定时请求一次URL?
嗨,我来帮你解决这个问题~你之前的批处理脚本没循环起来是因为timeout命令根本没有loop参数,Windows批处理得用标签+跳转的方式实现循环,下面给你两种靠谱的方案,满足你“尽量隐蔽、不显示页面”的需求:
方案一:改进批处理脚本(快速实现)
你可以修改原来的bat文件,用Windows批处理的循环语法来实现重复请求:
@echo off :loop :: 静默请求URL,不输出任何内容 curl -s https://example.com > nul :: 等待60秒,/nobreak防止用户按任意键跳过等待 timeout /t 60 /nobreak > nul :: 跳回循环起始点,重复执行 goto loop
脚本参数说明:
@echo off:关闭命令行的命令回显,避免窗口里显示一堆执行命令curl -s:启用curl的静默模式,不会输出请求的响应内容> nul:把curl和timeout的输出都重定向到空设备,彻底看不到任何输出timeout /t 60 /nobreak:固定等待60秒,且不允许用户中断等待
如果想要完全后台运行(看不到命令窗口),可以再写一个VBScript来调用这个bat:
创建一个run_background.vbs文件,内容如下:
Set WshShell = CreateObject("WScript.Shell") WshShell.Run "C:\path\to\your\script.bat", 0, False
把C:\path\to\your\script.bat替换成你实际的bat文件路径,双击这个VBS文件就会在后台悄悄运行脚本,完全没有窗口弹出。
方案二:使用Windows任务计划程序(长期稳定)
如果需要长期运行,任务计划程序是更可靠的选择——它可以自动重启失败的任务,还能设置开机自动启动:
- 打开任务计划程序(开始菜单搜索“任务计划程序”即可)
- 点击左侧的「创建基本任务」,给任务起个名字(比如“URL定时监控”)
- 触发器设置:选择「每天」,然后点击「下一步」,设置重复任务的间隔为1分钟,持续时间选「无限期」
- 操作设置:选择「启动程序」,在「程序或脚本」里填curl的完整路径(如果curl在系统PATH里,直接填
curl.exe就行,否则比如C:\Windows\System32\curl.exe) - 添加参数:输入
-s https://example.com > nul,确保请求静默无输出 - 完成前勾选「当单击完成时,打开此任务的属性对话框」,在属性里设置:
- 「不管用户是否登录都要运行」(适合无人值守的电脑)
- 「如果任务失败,每隔1分钟重试」(提升稳定性)
两种方案各有优势:批处理脚本适合临时快速部署,任务计划程序更适合长期稳定运行的场景,你可以根据需求选择~
备注:内容来源于stack exchange,提问作者Chris Harrington




