BAT批處理判斷服務是否正常執行(批處理命令綜合應用)
前言
某qlik sense
伺服器需要一個health check
(健康狀態監測)的程式,所以就有了一下的批處理指令碼。
大致功能如下:
- 批處理獲取當前日期時間
- 批處理生成動態的檔名
- 批處理輸出echo到日誌檔案
- 批處理遍歷列表list
- 批處理函式與call函式
- 判斷服務是否執行中
- 批處理count計數
- 批處理copy複製檔案
- 批處理判斷大於gtr(記住那輛跑車名,批處理大於、小於、等於、不小於、不大於和不等於)
@echo off
color 2E
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.log
REM set "filename=healthcheck_%YYYYmmdd%_%hhmiss%.log"
set "datetime=%YYYYmmdd%%hhmiss%"
set allCount=0
set errorCount=0
set checkList="QlikSenseServiceDispatcher" "QlikSenseSchedulerService" "QlikSenseRepositoryService" "QlikSenseRepositoryDatabase" "QlikSenseProxyService" "QlikSensePrintingService" "QlikSenseEngineService" "QlikLoggingService"
echo ============================================ >%filename%
echo Health Checking by Qlik Team >>%filename%
echo zhengkai.blog.csdn.net
echo (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_check
sc query |find /i %1 >nul 2>nul
if not errorlevel 1 (
echo SUCCESS...... %1 >>%filename%
)else (
echo FAILD...... %1 is error ! >>%filename%
set /a errorCount+=1
)
set /a allCount+=1
goto:eof
:check_status
if %errorCount% gtr 0 (
echo ###### this server is Not Health >>%filename%
) else (
echo ###### this server is Health >>%filename%
)
goto:eof
:end
copy %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_status
if %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=0
for %%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%
)
相關文章
- XP服務優化批處理.bat優化BAT
- Windos bat批處理指令碼,判斷是終端命令列執行,還是雙擊執行BAT指令碼命令列
- 批處理檔案 bat 後臺執行BAT
- bat批處理檔案BAT
- bat 批處理字串操作BAT字串
- 批處理命令
- .bat批處理新增Python任務BATPython
- 使用bat批處理命令打包maven專案BATMaven
- bat批處理常用指令碼BAT指令碼
- BAT 批處理指令碼 教程BAT指令碼
- Windows批處理命令Windows
- 批處理命令大全
- DOS 批處理命令
- 用批處理檔案執行備份
- 如何在批處理模式下執行 top 命令模式
- android apkbuilder.bat批處理AndroidAPKUIBAT
- 批處理檔案命令
- 批處理命令之tree命令
- Windows批處理(cmd/bat)常用命令小結WindowsBAT
- Windows批處理命令專題Windows
- dos批處理命令小記
- Windows批處理學習(二)——批處理(3)薦Windows
- sql server 2008中執行bat批處理檔案SQLServerBAT
- C#執行外部程式之執行DOS命令和批處理C#
- 批處理框架框架
- JDBC 批處理JDBC
- 碎片批處理
- 批處理概述
- 【轉】批處理命令請求以管理員身份執行
- 用批處理檔案編譯並執行java編譯Java
- 如何檢測Windows服務停止後自動啟動?自動執行.bat批處理檔案?WindowsBAT
- windows cmt bat批處理中的註釋WindowsBAT
- bat批處理轉換成exe檔案BAT
- 關於用飛信框架執行net程式-用批處理執行框架
- Windows自動使用管理員許可權執行bat批處理,手動選擇啟停服務WindowsBAT
- windows批處理之一:字串處理Windows字串
- 關於批處理(bat)資料庫備份BAT資料庫
- 批處理壓縮