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%
)
相關文章
- Windos bat批處理指令碼,判斷是終端命令列執行,還是雙擊執行BAT指令碼命令列
- 批處理檔案 bat 後臺執行BAT
- bat 批處理字串操作BAT字串
- bat批處理常用指令碼BAT指令碼
- 如何在批處理模式下執行 top 命令模式
- 批處理命令之tree命令
- 如何檢測Windows服務停止後自動啟動?自動執行.bat批處理檔案?WindowsBAT
- bat批處理轉換成exe檔案BAT
- 批處理概述
- Windows自動使用管理員許可權執行bat批處理,手動選擇啟停服務WindowsBAT
- prepareStatement和Statement執行批處理的執行情況REST
- 程式設計師需要懂點的批處理命令之bat(1.0)程式設計師BAT
- 04 Windows批處理中的條件執行Windows
- 10 Windows批處理之呼叫例程和bat檔案WindowsBAT
- win10 bat檔案命令大全_win10系統常用bat批處理命令小結Win10BAT
- Apache Beam,批處理和流式處理的融合!Apache
- 什麼是批處理
- Dynamics CRM 2013 批處理
- window 批處理檔案
- 09 Windows批處理之標籤和無序執行Windows
- 08 Windows批處理之執行編譯後的程式Windows編譯
- windwos 批處理指令碼bat 擷取某一列 賦值給變數,執行變數(重啟weblogic服務)指令碼BAT賦值變數Web
- pytest 命令在 jenkins 批處理裡不能識別Jenkins
- Windows 批處理之DATE命令的使用方法Windows
- Dos批處理常用命令大全入門
- 簡單實現批處理
- Python批處理:檔案操作Python
- MPP架構和批處理架構
- java當中的批處理Java
- JDBC當中的批處理JDBC
- 自動部署模組所需環境依賴--bat批處理BAT
- LOTO示波器動作程式設計功能(命令批處理)程式設計
- bat批處理徹底刪除0KB頑固檔案BAT
- 帶你認識FusionInsight Flink:既能批處理,又能流處理
- Jenkins執行遠端Windows批處理的許可權問題JenkinsWindows
- 開啟windows批處理大門Windows
- 批處理最佳實踐 - Vlad Mihalcea
- 用批處理在指定目錄啟動Notebook