-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathqueryService.bat
More file actions
108 lines (83 loc) · 2.06 KB
/
queryService.bat
File metadata and controls
108 lines (83 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
@echo off
setlocal enabledelayedexpansion
set serviceName=
set /a exact=0
set /a recursive=0
set /a verbose=0
if [%1]==[] goto help
GOTO :ParseParams
:ParseParams
if [%1]==[/?] goto help
if /i [%1]==[/h] goto help
if /i [%1]==[/help] goto help
IF /i "%~1"=="/e" (
SET /a exact=1
goto reParseParams
)
IF /i "%~1"=="/s" (
SET /a recursive=1
goto reParseParams
)
IF /i "%~1"=="/v" (
SET /a verbose=1
goto reParseParams
) else (
set "serviceName=%~1"
goto reParseParams
)
:reParseParams
SHIFT
if [%1]==[] goto main
GOTO :ParseParams
:main
if ["%serviceName%"] EQU [""] (
echo [e] No service name set^^!
exit /b 1
)
set rec=
if %recursive% EQU 1 (
set rec=/s
)
set exct=
if %exact% EQU 1 (
set exct=/e
)
set /a n=0
set vector=()
for /F "tokens=1,2,3 delims= " %%H in ('reg query "HKLM\System\CurrentControlSet\Services" /f %serviceName% %exct%') do (
REM echo h: %%H
REM echo i: %%I
REM echo j: %%J
set service_name=%%H
set "service_name=!service_name:~53!"
if ["!service_name!"] NEQ [""] (
REM echo n: !n!
REM echo service_name: !service_name!
set vector[!n!]=!service_name!
set /A n+=1
)
)
set /a end=n-1
for /l %%i in (0, 1, %end%) do (
echo [%%i] !vector[%%i]!
set "service_name=!vector[%%i]!"
reg query "HKLM\System\CurrentControlSet\Services\!service_name!" %rec%
echo.
echo ----------------------------------
echo.
)
if %verbose% EQU 1 echo exiting with errorlevel %errorlevel%
endlocal
exit /B 0
:usage
echo Usage: %prog_name% [serviceName] [/s] [/v] [/h]
exit /B 0
:help
call :usage
echo.
echo Options:
echo /s Iterate key recursively.
echo /e Exact match.
echo /v Verbose mode.
echo /h Print this.
exit /B 0