BAT批处理判断服务是否正常运行的方法(批处理命令综合应用)
先给大家普及下批处理的基本概念
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat或cmd。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
前言
某qliksense服务器需要一个healthcheck(健康状态监测)的程序,所以就有了一下的批处理脚本。
大致功能如下:
- 批处理获取当前日期时间
- 批处理生成动态的文件名
- 批处理输出echo到日志文件
- 批处理遍历列表list
- 批处理函数与call函数
- 判断服务是否运行中
- 批处理count计数
- 批处理copy复制文件
- 批处理判断大于gtr(记住那辆跑车名,批处理大于、小于、等于、不小于、不大于和不等于)
@echooff color2E setYYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2% sethhmiss=%time:~0,2%%time:~3,2%%time:~6,2% setfilename=healthcheck.log REMset"filename=healthcheck_%YYYYmmdd%_%hhmiss%.log" set"datetime=%YYYYmmdd%%hhmiss%" setallCount=0 seterrorCount=0 setcheckList="QlikSenseServiceDispatcher""QlikSenseSchedulerService""QlikSenseRepositoryService""QlikSenseRepositoryDatabase""QlikSenseProxyService""QlikSensePrintingService""QlikSenseEngineService""QlikLoggingService" echo============================================>%filename% echoHealthCheckingbyQlikTeam>>%filename% echozhengkai.blog.csdn.net echo(datetime:%datetime%)>>%filename% echo============================================>>%filename% echo.>>%filename% echo.>>%filename% for%%Lin(%checkList%)docall:health_check%%L echo============================================>>%filename% echoCheckingFinish.>>%filename% echo.>>%filename% echoError:%errorCount%of%allCount%>>%filename% echo.>>%filename% echo============================================>>%filename% call:check_status echo============================================>>%filename% goto:end :health_check scquery|find/i%1>nul2>nul ifnoterrorlevel1( echoSUCCESS......%1>>%filename% )else( echoFAILD......%1iserror!>>%filename% set/aerrorCount+=1 ) set/aallCount+=1 goto:eof :check_status if%errorCount%gtr0( echo######thisserverisNotHealth>>%filename% )else( echo######thisserverisHealth>>%filename% ) goto:eof :end copy%filename%\\xxxx\DataShare\CSDN\ZhengKai\
批处理获取当前日期时间,生成动态的文件名
setYYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2% sethhmiss=%time:~0,2%%time:~3,2%%time:~6,2% set"filename=healthcheck_%YYYYmmdd%_%hhmiss%.log" echo%filename%
批处理输出echo到日志文件
- >就是清空输出文件,重新输出层
- >>就是追加到日子和文件
echo============================================>%filename% echoHealthCheckingbyQlikTeam>>%filename% echo============================================>>%filename%
批处理遍历列表list
定义在一个List会后,就可以开始使用
- for%%L用什么变量来遍历
- in(%checkList%)遍历哪个数组
- doecho%%L遍历来做什么
setcheckList="QlikSenseServiceDispatcher""QlikSenseSchedulerService""QlikSenseRepositoryService""QlikSenseRepositoryDatabase""QlikSenseProxyService""QlikSensePrintingService""QlikSenseEngineService""QlikLoggingService" echo============================================>%filename% echoHealthCheckingList>>%filename% for%%Lin(%checkList%)doecho%%L echo============================================>>%filename%
批处理函数与call函数
定义一个:function_name,中间是函数内容,后面以goto:eof结尾
call:check_status :check_status if%errorCount%gtr0( echo######thisserverisNotHealth>>%filename% )else( echo######thisserverisHealth>>%filename% ) goto:eof
批处理count计数
计数加一set/aallCount+=1
setallCount=0 for%%Lin(%checkList%)doset/aallCount+=1
批处理copy复制文件
- 复制文件copy文件名目录页
- 复制文件夹用xcopy,指定的目录连文件和目录结构一并拷贝
copy%filename%"\\xxxx\DataShare\CSDN\ZhengKai\"
批处理大于、小于、等于、不小于、不大于和不等于
- EQU-等于
- NEQ-不等于
- LSS-小于
- LEQ-小于或等于
- GTR-大于
- GEQ-大于或等于
if%errorCount%gtr0( echo######thisserverisNotHealth>>%filename% )else( echo######thisserverisHealth>>%filename% )
总结
以上所述是小编给大家介绍的BAT批处理判断服务是否正常运行的方法(批处理命令综合应用),希望对大家有所帮助,也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。