Windows 自动定时执行任务的几种实现方法

发布时间:2025-05-10 05:39

如何设置家庭自动化系统在特定时间自动执行任务 #生活技巧# #居家生活技巧# #家庭护理技巧# #家庭自动化设备#

Windows 自动定时执行任务的几种实现方法2011-10-20 17:40:10| 分类:Sql Serv er|字号订阅Window s自动定时执行任务,常见的方法有三种:Window s 任务计划程序Window s ServiceSQL Agent 的Job这三种方法大多数人都用过,我在这里只做一个比较简单的介绍和小结,后续,我会用一个轻量型的.Net Window s Service Jobs的作为例子介绍如何定制Window s Service以及如何让Windows Service 自动定时执行任务。

首先,我们来看:使用Window s 任务计划程序如何创建自动定时执行任务:界面方式:计算机(右键)->管理,然后就可以打开“计算机管理”界面,在界面的左侧有一个系统工具->任务计划程序,在此我们可以创建定时执行的计划任务,并且可以为每个任务添加触发器和具体的操作。

;具体的使用方法应该很简单,这里就不再一一介绍。

CMD 命令行方式: 主要命令是SchTas ks (另外还有AT命令,该命令用来调用或者执行已经存在于Tas k Schedule列表中的Tas k). 命令行形式可以用于制作安装和部署包。

如果用界面方式的话,安装和部署都不太方便。

SchTasks /?: 查看SchTasks命令,SCHTASKS /parameter [arguments]描述:允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任务。

参数列表:/Cr eate 创建新计划任务。

/Delete 删除计划任务。

/Query 显示所有计划任务。

/Change 更改计划任务属性。

/Run 按需运行计划任务。

/E nd 中止当前正在运行的计划任务。

/Show Sid 显示与计划的任务名称相应的安全标识符。

/? 显示此帮助消息Window s 任务计划程序需要:具体的任务执行程序(exe,批处理);而通过设置,让Window s来控制具体的执行的具体时间,重复度,触发条件,等。

我们可以控制的是具体的任务执行程序。

当然如果我们将什么时候定时执行任务,以及如何重复执行,触发条件等都写在程序里,也未尝不可,但是这样的话,就抹杀了Window s 任务计划程序的特有功能了!!接下来,我们来看一下,Window s Service 如何解决自动定时执行任务。

利用Window s Service 解决自动定时执行任务的方案是,制作一个Window s Service程序,在Service 内部部署好具体的任务程序,以及控制任务什么时候执行,如何重复,等等。

他的可控性和自定义空间相比任务计划程序大,但是自己的工作量相对而言就大一些。

有关如何制作Window s Service程序,我在下篇文章中会介绍,这里只介绍如何部署和卸载。

部署Window s Service只能通过命令行形式来部署。

但是具体的命令有两种: InstallUtil 和sc(也可以在Window s Service的P rogram启动点中添加自定义的Installer和启动参数来实现不用InstallUtil和sc来安装和卸载,最后还是要通过命令行形式输入运行参数来安装,这个我会在后续的文章中详解如何在Window s Service中添加启动参数和自定义Installer)InstallUtil.exe是.NetFramew ork自带的工具,一般他的路径在C:\Windows\\Framew ork\version\ 下。

使用方法: installutil [/uninstall][option [...]]assemblyname其中assemblyname 必须使用程序集的版本、区域性和公钥标记完全限定程序集名称详情请见InstallUtil.exe (MSDN)SC 是系统自带的命令,不需要.Net Framew ork(当然如果希望运行C#程序,.Net Framew ork是必须的,所以一般情况下我们都可以用InstallUtil命令来部署和卸载)。

我以前做开发Service时碰到的一个问题是,当我用InstallUtil部署好一个Service,但由于程序更新,需要卸载后重新部署,这个时候,就出现用InstallUitl /u 无法卸载的情况,具体的原因还不太明白,但是MSDN上说明了InstallUtil 安装的时候是启用事务的,但是卸载的时候不启用事务,会不会是这个原因呢??但是,这中情况下,我却可以用sc delete 命令来卸载。

有关sc命令的使用方法,sc /?:描述:SC 是用于与服务控制管理器和服务进行通信的命令行程序。

用法:sc <server> [command] [service name] <option1> <option2>...选项<server> 的格式为“\\servername”键入"sc [command]" 可以获得有关命令的进一步帮助命令:query-----------查询服务的状态,或枚举服务类型的状态。

queryex---------查询服务的扩展状态,或枚举服务类型的状态。

start-----------启动服务。

pause-----------向服务发送P A USE控制请求。

interrogate-----向服务发送INTERROGA TE控制请求。

continue--------向服务发送CONTINUE控制请求。

stop------------向服务发送STOP 请求。

config----------更改服务的配置(永久)。

description-----更改服务的描述。

failure---------更改服务失败时执行的操作。

failureflag-----更改服务的失败操作标志。

sidtype---------更改服务的服务SID 类型。

pr ivs-----------更改服务的所需权限。

qc--------------查询服务的配置信息。

qdescription----查询服务的描述。

qfailure--------查询失败时服务执行的操作。

qfailureflag----查询服务的失败操作标志。

qs idtype--------查询服务的服务SID 类型。

qprivs----------查询服务的所需权限。

qtr iggerinfo----查询服务的触发器参数。

qpreferrednode--查询首选的服务NUMA 节点。

delete----------(从注册表)删除服务。

create----------创建服务(将其添加到注册表)。

contr ol---------向服务发送控制。

sdshow----------显示服务的安全描述符。

sdset-----------设置服务的安全描述符。

show sid---------显示相应于假定名称的SID 字符串。

trigger info-----配置服务的触发器参数。

preferrednode---设置首选的服务NUMA 节点。

GetDisplay Name--获取服务的Display NameGetKey Name------获取服务的ServiceKey Name。

EnumDepend------枚举服务的依存关系。

下列命令不要求服务名称:sc <server> <command> <option>boot------------(ok | bad) 指示是否将上一次启动保存为最近一次已知的正确启动配置Lock------------锁定服务数据库QueryLock-------查询SCManager 数据库的Loc kStatus 示例:sc start MyService是否想参阅QUERY 和QUERY EX 命令的帮助? [ y | n ]: yQUERY 和QUERY EX 选项:如果查询命令带服务名称,将返回该服务的状态。

其他选项不适合这种情况。

如果查询命令不带参数或带下列选项之一,将枚举此服务。

type= 要枚举的服务的类型(dr iver, service, all)默认= service)state= 要枚举的服务的状态(inactive, all)(默认= active)bufsize= 枚举缓冲区的大小(以字节计)(默认= 4096)ri= 开始枚举的恢复索引号(默认= 0)group= 要枚举的服务组(默认= all groups)语法示例sc query - 枚举活动服务和驱动程序的状态sc query eventlog - 显示eventlog 服务的状态sc queryex eventlog - 显示eventlog 服务的扩展状态sc query type= driver - 仅枚举活动驱动程序sc query type= service - 仅枚举Win32 服务sc query state= all - 枚举所有服务和驱动程序sc query bufsize= 50 - 枚举缓冲区为50 字节sc query ri= 14 - 枚举时恢复索引= 14sc queryex group= "" - 枚举不在组内的活动服务sc query type= inter act - 枚举所有不活动服务sc query type= driver group= NDIS - 枚举所有NDIS 驱动程序上面的用法都是来自系统help, 具体使用很简单,试一试就OK 了。

Window s Service 是一种完全自定义控制的实现自动定时执行任务的方法,可以自定义的东西很多,灵活性很高,所以使用起来可能会比Window s 任务计划程序稍微复杂一些,适合灵活度和扩张性要求高的情况。

最后,我们简单介绍一些SQL Agent中Job。

SQL Agent 是SQL Server的一个服务之一,用之前,我们需要启动SQL Agent Window s Service. 这个只适用于数据库方面的数据定时更新,定时发送邮件,等等与数据库相关任务,但是牵涉到桌面应用方面的可能就无能为力了,这里不再多介绍了!总而言之,使用何种方法来实现任务的定时的按计划执行,需要根据具体的情况来定:仅仅与数据库相关的,用SQL Agent不需要考虑太多灵活性和扩展性的,用Window s 任务计划程序灵活度高,需要考虑扩展应用(必须添加Job,按照自定义方式执行Job,... ...),那我们可以选择Windows Service 接下来的文章,我会用一个比较简单的例子,介绍如何构建,部署Window s Service!企业管理器--管理--sql server(WINDOWS平台上强大的数据库平台)代理--右键作业--新建作业--"常规"项中输入作业名称--"步骤"项--新建--"步骤名"中输入步骤名--"类型"中选择"Transact-SQL 脚本(TSQL)"--"数据库"选择执行命令的数据库--"命令"中输入要执行的语句:Update City Set IsAccess=0--确定--"调度"项--新建调度--"名称"中输入调度名称--"调度类型"中选择你的作业执行安排--定为每天调度一次,时间为18:40即可--如果选择"反复出现"--点"更改"来设置你的时间安排然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:我的电脑--控制面板--管理工具--服务--右键SQLSERV ERA GENT--属性--启动类型--选择"自动启动"--确定。

网址:Windows 自动定时执行任务的几种实现方法 https://www.yuejiaxmz.com/news/view/948635

相关内容

自动执行 Windows 计算机的维护任务
Oracle任务的自动化实现(oracle任务自动执行)
Windows“任务计划程序”定时自动执行bat文件
如何实现自动化操作——Windows任务计划的使用方法详解
Docker自动化:轻松实现定时任务的脚本部署与执行
利用windows的任务计划让php代码自动执行
后台执行 Windows 计划任务:自动化任务的全面指南
windows 10 如何设定计划任务自动执行 python 脚本?
windows计划任务执行python脚本
揭秘Windows CMD后台执行的秘密:轻松实现自动化任务,效率飙升不再是梦!

随便看看