我需要安排一个 Windows 任务每分钟运行一个脚本。在大多数情况下,脚本不需要执行任何操作并立即存在。当脚本需要执行某些操作时,我希望它尽快启动作业,因此间隔为一分钟。
现在,Windows 调度程序的 UI 近年来变得相当混乱,所以我不确定在 Windows 2008 R2 上每分钟(或 5 分钟......)运行任务的最佳方式是什么。
这是每分钟在 Windows 下安排任务的最佳方式吗?它可靠吗?它是在机器重新启动后直接启动,还是仅在下午 12 点重新启动?请注意,我不能为此使用/编写自定义服务应用程序,因为我需要它非常便携。
我也有同样的要求。在 Server 2008 中,您实际上可以修改重复任务间隔:下拉菜单。默认情况下,最小值是"5 minutes",但您可以简单地在其中键入"1 minute"。您可以通过查看Triggers选项卡并看到它显示"... repeat every 00:01:00..."来验证这一点。您也可以尝试输入“10 秒”,您会收到一条错误消息,告诉您选择大于 1 分钟的内容。
我可以使用命令行“schtasks”安排每分钟重复一次的任务。代码示例如下:
schtasks /create /sc minute /mo 1 /tn "任务名称" /tr c:\temp\filename.exe
该任务确实显示在 Windows 2008 R2 GUI 中并且每分钟运行一次。需要使用命令行“schtasks”实用程序创建和修改任务。
不幸的是,微软愚蠢地设计了 Windows 2008 R2 任务计划程序,放弃了 Windows 2003 任务计划程序中的灵活配置,转而支持一些有限的间隔选择。
达维芬
是的,此服务将在重启后运行,您可以在任务计划程序服务事务日志中验证它:
如果它不能正常工作(在 XP 下,不确定 2008 等效):
此处为2008 文档,此处为XP 文档
任务的计划在指定时间开始,之后根据重复参数执行。开始时间可以被认为是“任务安装”时间,它不是重复参数的一部分(除了作为计时器偏移)。希望这是有道理的!
试试这个,为我工作......
REM ================================================== ================
REM # 主体
REM ================================================== ===============
if "%1" == "" echo 用法:- C:\scripts\port_schtask.cmd ^ ^ && %SystemRoot%\system32\ping 127.0.0.1 -n 10 >nul && exit
如果不存在 C:\scripts\port.bat echo 用法:- 文件不存在 C:\scripts\port.bat && %SystemRoot%\system32\ping 127.0.0.1 -n 10 >nul && exit
%SystemRoot%\system32\schtasks /delete /tn "port.bat %1 %2" /f
%SystemRoot%\system32\schtasks /create /tr "C:\scripts\port.bat %1 %2" /SC MINUTE /MO 1 /tn "port.bat %1 %2" /RU "SYSTEM"
%SystemRoot%\system32\SCHTASKS /run /TN "port.bat %1 %2"
%SystemRoot%\system32\SCHTASKS|%SystemRoot%\system32\find.exe "port.bat %1 %2"
%SystemRoot%\system32\schtasks /query /TN "port.bat %1 %2"
%SystemRoot%\system32\ping 127.0.0.1 -n 10 >nul
rem------------------------------------------------ -----
欢呼 RJB