1.作者背景
1.1 我本人做Linux环境下开发比较多,偶尔也要做Windows服务。Windows环境下,如果要用代码将程序写进Windows服务太麻烦了;今天就用脚本实现这个后台自启动,跟把程序写成服务差不多,程序退出会自启动,关机重启也会自启动;这些都是后台的,不影响其他任何操作。
1.2 大家查资料也都能把这个自启动脚本写出来,我就为大家服务,为大家节省些时间吧。
2.自启动脚本
2.1 自启动脚本如下,有些必要的注释,如果要懂太细节,我觉得没必要,只要拿去会用就OK,省时省力。
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
set _task=alarmmanager... %注释1:程序名字,不区分大小写,去掉.exe后缀%
set _runexe=start.vbs
:checkstart
echo "检查进程"
for /f "tokens=5" %%c in ('qprocess.exe ^| find "%_task%"') do ( if %%c==" " ( @echo ) else goto checkag )
goto startsvr
:startsvr
echo ******开始启动程序*******
echo 启动时间 %time% >> restart.log %注释2:重启日志,记录重启时间,方便定位%
echo set ws=wscript.createobject("wscript.shell") >> %_runexe%
echo ws.run "AlarmManager.exe",0,false >> %_runexe% %注释3:程序名字AlarmManager.exe替换成你的程序全名%
start /b %_runexe%
echo Wscript.Sleep Wscript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
del %_runexe% /Q
echo *******程序启动完成********
goto checkstart
:checkag
echo Wscript.Sleep Wscript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000
goto checkstart
3.如何使用这个脚本
3.1 创建一个txt文本,将上面脚本拷贝过去。
3.2 按照注释改脚本,也就是改成你程序的名字,然后删除所有注释,保存。
3.3 将txt文本后缀名改成.bat,如:keep.txt -->keep.bat 。
3.4 将keep.bat放在程序的同一级目录,并创建keep.bat 的快捷键。
3.5 将快捷方式拷贝到开始菜单的启动栏中,启动栏打开的方式为 开始->所有程序->启动,右键启动,选择打开,然后将快捷方式拷贝到该文件夹,如下图。
3.6 第一次肯定手动双击keep.bat启动程序,以后就不用管了,断电或者重启主机都会后台自启动。