将程序作为服务启动的思路脚本

将程序作为服务启动的思路脚本

`安装 instsrv ServiceName C:\Windows\System32\srvany.exe` 
`卸载 instsrv ServiceName remove`
`(ServiceName 即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。)`

`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName`
`如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。`
`名称 Application 值为你要作为服务运行的程序地址。如:D:\Services\SVNCheckServer\SVNCheck.exe`
`名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。如:D:\Services\SVNCheckServer\`
`名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。`
`C:\Windows\SysWOW64\`
`C:\Windows\SysWOW64\instsrv.exe "Windows xm" C:\Windows\SysWOW64\srvany.exe`
`@echo off`
`rem 参数依次为 服务名称 可执行文件名称`
`@echo 服务名称:%1`
`@echo 程序名称:%2 rem 定义需要运行的程序路径`
`set curExe=%~dp0%2`
`rem 定义注册表路径`
`set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\`
`rem 定义srvany.exe文件路径`
`set sourcePath=%~dp0srvany.exe rem 进入当前目录`
`cd /d "%~dp0"`
`rem 安装引导服务`
`instsrv %1 "%sourcePath%"`
`@echo 服务添加完成  
rem 添加注册表语法: reg add 注册表路径 /v 项名称 /t 值类型 /d 数据 /f 表示强行修改不提示` 
`rem 名称 Application 值为你要作为服务运行的程序地址 /d对应的参数有斜杠不是为了转义引号,而是路径还有斜杠,默认将引号转义了,额外添加斜杠是为了保留引号`
`reg add %regpath% /v AppDirectory /t REG_SZ /d "%~dp0\" /f   rem 名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径`
`reg add %regpath% /v Application /t REG_SZ /d "%curExe%" /f  rem 名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数`
`reg add %regpath% /v AppParameters /t REG_SZ /f`
`@echo 注册表添加完成`

`install.bat 命令含义:进入当前目录,调用当前目录下的 install.bat文件,并传入参数,完成服务安装。服务名:SVNCheckServer 执行程序:SVNCheck.exe`

`@echo off`
`cd /d %~dp0`
`call install.bat SVNCheckServer SVNCheck.exe`
`pause`

`运行uninstall.bat 卸载服务,传入服务名称即可。`
`@echo off`
`rem 参数依次为 服务名称`
`@echo 服务名称:%1   rem 进入当前目录`
`cd /d %~dp0`
`rem 卸载引导服务`
`instsrv %1 remove`
`uninstall.bat 命令含义:进入当前目录,调用当前目录下的uninstall.bat文件,并传入参数,完成服务卸载。服务名:SVNCheckServer`

`@echo off`
`cd /d %~dp0`
`call uninstall.bat SVNCheckServer`
`pause`