这篇文章将为大家详细讲解有关BAT批处理如何判断服务是否正常运行,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先给大家普及下批处理的基本概念批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某
这篇文章将为大家详细讲解有关BAT批处理如何判断服务是否正常运行,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
先给大家普及下批处理的基本概念
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和windows系统中。批处理文件的扩展名为bat 或cmd。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、Goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
前言
某qlik sense服务器需要一个health check(健康状态监测)的程序,所以就有了一下的批处理脚本。
大致功能如下:
批处理获取当前日期时间
批处理生成动态的文件名
批处理输出echo到日志文件
批处理遍历列表list
批处理函数与call函数
判断服务是否运行中
批处理count计数
批处理copy复制文件
批处理判断大于gtr(记住那辆跑车名,批处理大于、小于、等于、不小于、不大于和不等于)
@echo offcolor 2Eset YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2%set hhmiss=%time:~0,2%%time:~3,2%%time:~6,2%set filename=healthcheck.logREM set "filename=healthcheck_%YYYYmmdd%_%hhmiss%.log"set "datetime=%YYYYmmdd%%hhmiss%"set allCount=0set errorCount=0set checkList="QlikSenseServiceDispatcher" "QlikSenseSchedulerService" "QlikSenseRepositoryService" "QlikSenseRepositoryDatabase" "QlikSenseProxyService" "QlikSensePrintingService" "QlikSenseEngineService" "QlikLoggingService"echo ============================================ >%filename%echo Health Checking by Qlik Team >>%filename%echo zhengkai.blog.csdn.netecho (datetime: %datetime% ) >>%filename%echo ============================================ >>%filename%echo. >>%filename%echo. >>%filename%for %%L in (%checkList%) do call :health_check %%L echo ============================================ >>%filename%echo Checking Finish. >>%filename%echo. >>%filename%echo Error : %errorCount% of %allCount% >>%filename%echo. >>%filename%echo ============================================ >>%filename%call :check_status echo ============================================ >>%filename%goto:end:health_checksc query |find /i %1 >nul 2>nulif not errorlevel 1 ( echo SUCCESS...... %1 >>%filename%)else ( echo FAILD...... %1 is error ! >>%filename% set /a errorCount+=1)set /a allCount+=1goto:eof:check_statusif %errorCount% gtr 0 ( echo ###### this server is Not Health >>%filename%) else ( echo ###### this server is Health >>%filename%)goto:eof:endcopy %filename% \\xxxx\DataShare\CSDN\ZhengKai\
批处理获取当前日期时间,生成动态的文件名
set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2%set hhmiss=%time:~0,2%%time:~3,2%%time:~6,2%set "filename=healthcheck_%YYYYmmdd%_%hhmiss%.log"echo %filename%
批处理输出echo到日志文件
> 就是清空输出文件,重新输出层
>> 就是追加到日子和文件
echo ============================================ >%filename%echo Health Checking by Qlik Team >>%filename%echo ============================================ >>%filename%
批处理遍历列表list
定义在一个List会后,就可以开始使用
for %%L 用什么变量来遍历
in (%checkList%) 遍历哪个数组
do echo %%L 遍历来做什么
set checkList="QlikSenseServiceDispatcher" "QlikSenseSchedulerService" "QlikSenseRepositoryService" "QlikSenseRepositoryDatabase" "QlikSenseProxyService" "QlikSensePrintingService" "QlikSenseEngineService" "QlikLoggingService"echo ============================================ >%filename%echo Health Checking List >>%filename%for %%L in (%checkList%) do echo %%L echo ============================================ >>%filename%
批处理函数与call函数
定义一个:function_name,中间是函数内容,后面以goto:eof结尾
call :check_status:check_statusif %errorCount% gtr 0 ( echo ###### this server is Not Health >>%filename%) else ( echo ###### this server is Health >>%filename%)goto:eof
批处理count计数
计数加一 set /a allCount+=1
set allCount=0for %%L in (%checkList%) do set /a allCount+=1
批处理copy复制文件
复制文件 copy 文件名 目录页
复制文件夹用xcopy,指定的目录连文件和目录结构一并拷贝
copy %filename% "\\xxxx\DataShare\CSDN\ZhengKai\"
批处理大于、小于、等于、不小于、不大于和不等于
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
if %errorCount% gtr 0 ( echo ###### this server is Not Health >>%filename%) else ( echo ###### this server is Health >>%filename%)
关于“BAT批处理如何判断服务是否正常运行”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
--结束END--
本文标题: BAT批处理如何判断服务是否正常运行
本文链接: https://lsjlt.com/news/253377.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0