新手编数据库自动巡检脚本,请各位大侠帮忙,万分感谢!- @echo off
- setlocal DisableDelayedExpansion
- rem setlocal EnableDelayedExpansion
- for /f %%i in ('db2ilist') do (
- echo %%i
- for /f "tokens=1" %%s in ('wmic service get Name^, PathName ^| findstr db2sysc') do (
- echo %%s
- set n=%%s
- echo %n%
- if %%s == %%i (
- echo Exist
- echo ---
- ) else (
- echo Not
- echo ---
- )
- )
- echo ***
- )
复制代码 说明:
1、db2ilist的返回值为如下2行:
DB2INST1
DB2
2、wmic service get Name, PathName | findstr db2sysc 的返回值为如下2行(不足10位后面补的空格):
DB2-0
DB2INST1
功能:判断进程对应的service服务是否已启动。
当前输出效果:
DB2INST1
DB2-0
DB2INST1
Not
---
DB2INST1
DB2INST1
Exist
---
***
DB2
DB2-0
DB2INST1
Not
---
DB2INST1
DB2INST1
Not
---
***
问题:
1、输出的第16行应该是DB2,为什么成了DB2INST1 ?
2、echo %n%输出的3、7、13、17行,为什么全不对?
3、set n=%%s这行我想将-0换成空,这样写为什么不对 set n=%%s:-0=
4、代码第10行我是想这样写if %n% == %%i ( ,为什么这样后少了4个echo。
5、求正确的第8和第10行代码。 |