将BAT文件注册为服务的方法 (含64位)【转载】
【转自:http://blog.sina.com.cn/s/blog_50d43ad50101cmh3.html】
第一步:
下载微软系统小工具 instsrv.exe和srvany.exe至C:\Windows\System32。
第二步:
第二步:
运行Dos命令代码:instsrv ServiceName C:\Windows\System32\srvany.exe
(ServiceName 即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。)
(ServiceName 即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。)
※64位系统会出现以下错误
Unable to find the file at the given path
解决方法:【转自:https://www.cnblogs.com/hyamw/p/5772369.html】
将instsrv和srvany程序在windows/sysWow64目录下再copy一份
第三步:
第三步:
打开注册表,定位到下面的路径。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
(同样的ServiceName是你刚才安装服务时自定义的服务名称。)
如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的BAT文件地址。
名称 AppDirectory 值为你要作为服务运行的BAT文件所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的BAT文件启动所需要的参数。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
(同样的ServiceName是你刚才安装服务时自定义的服务名称。)
如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的BAT文件地址。
名称 AppDirectory 值为你要作为服务运行的BAT文件所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的BAT文件启动所需要的参数。
注意:
此方法注册好的服务,无法通过sc stop停止。(在服务中启动、关闭服务似乎无效,只有重启才会生效 )
解决方法:使用procexplorer,查询srvany.exe的子进程node。sc stop之后,找到该node子进程,kill掉。