[DOS BATCH]列出本機服務(windows service)
紀錄一下過程。
問題描述
想要將本機電腦上的服務(windows service)列出清單,篩選出跟SQL Server有關的服務。
步驟
1. 使用wmic查詢本機服務。
2. 查詢跟SQL server有關的服務。
3. 彙整到批次檔。
@if not "%OS%"=="Windows_NT" goto :EXIT
@if "%1"=="" (set INFO=echo && set SEXIT=I) else (set INFO=rem && set SEXIT=O)
%INFO% *****************************************************
%INFO% 功能描述:系統服務(windows service)清單
%INFO% 撰寫日期:2015/11/5
%INFO% 作者:DUNK
%INFO% *****************************************************
rem 如果不需要輸入參數,請將下列一行註解
rem @if "%SEXIT%"=="I" goto :EXIT
@title 列出系統服務(windows service)清單
@cls
@color 07
:MAIN
echo STARTTIME:%date% %time%
rem 執行檔名稱
set exeFileName=wmic
rem 格式檔位置(*.xsl)
rem 預設資料夾為%WINDIR%\System32\wbem\zh-TW(中文版作業系統)
rem 找不到請更換為%WINDIR%\System32\wbem\en-US
set xslfile=%WINDIR%\System32\wbem\zh-TW\htable
rem 清單檔案位置
set exportFileName=D:\ServiceList_%COMPUTERNAME%.html
echo %COMPUTERNAME%系統服務(windows service)清單 > %exportFileName%
echo 產生時間:%date% %time% >> %exportFileName%
rem 取得IP位置
%exeFileName% NICCONFIG where IPEnabled=TRUE get IPADDRESS /FORMAT:"%xslfile%"|more >> %exportFileName%
rem 列出與SQL server有關的服務清單
%exeFileName% service where "name like '%%SQL%%'" get name,startmode,state,startname /FORMAT:"%xslfile%"|more >> %exportFileName%
echo ENDTIME:%date% %time%
:EXIT
%exportFileName%
@echo on
結果畫面
注意事項
1. where之後條件敘述式要加雙引號。
2. 在批次檔使用like的話要加兩個百分比符號%%。
參考資料