脚本如下所示,主要是现在select_sqlserver.log中看是否有"0 行受到影响" 字符串,有则重启主机上相应服务,否则打印日志到文件restart.log。
结果很诡异,居然if 和else中相应语句都会执行,迷茫了。- set /p str1=findstr "0 行受到影响" select_sqlserver.log
- set str2="(0 行受到影响)"
- echo %str1% >> C:\restart.log
- echo %str2% >> C:\restart.log
- if "%str1%"=="%str2%" (
- date /t >> C:\restart.log
- echo %time% >> C:\restart.log
- net stop MSSQLServerOLAPService /y
- net stop SQLAgent$INSTANCE1 /y
- net stop MSSQL$INSTANCE1 /Y
- ping -n 5 127.1>null
- net start MSSQL$INSTANCE1
- net start SQLAgent$INSTANCE1
- ping -n 10 127.1>null
- net start MSSQLServerOLAPService
- date /t >> C:\restart.log
- echo %time% >> C:\restart.log
- echo "restart SQL SERVER successfully" >> C:\restart.log
- ) else (
- date /t >> C:\restart.log
- echo %time% >> C:\restart.log
- echo "restart SQL SERVER failed" >> C:\restart.log
- )
复制代码 restart.log日志记录文件如下:
"(0 行受到影响)"
2015-01-09 星期五
17:51:37.91
2015-01-09 星期五
17:52:16.00
"restart SQL SERVER successfully"
2015-01-09 星期五
17:52:16.00
"restart SQL SERVER failed" |