Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在日志中查找特定警告并使用批处理脚本终止PID_Batch File_Pid_Findstr - Fatal编程技术网

Batch file 在日志中查找特定警告并使用批处理脚本终止PID

Batch file 在日志中查找特定警告并使用批处理脚本终止PID,batch-file,pid,findstr,Batch File,Pid,Findstr,我们有一个“间歇性数据库断开”问题(可以在应用程序日志中找到此消息),目前我正在手动查找PID并终止(但没有重新启动应用程序以避免停机)。 /我需要帮助搜索所有日志上的断开连接字符串(日志本身包含PID名称)并终止当前正在处理的PID 我已经创建了一个脚本,但它可以删除文件(如果它没有被锁定),但我正在寻找完整的解决方案,所以同样可以在windows scheduler上进行调度。 下面是我目前创建的脚本(没有太多帮助,但我可以在手动清除PID后删除日志) @echo off&setlocal

我们有一个“间歇性数据库断开”问题(可以在应用程序日志中找到此消息),目前我正在手动查找PID并终止(但没有重新启动应用程序以避免停机)。 /我需要帮助搜索所有日志上的断开连接字符串(日志本身包含PID名称)并终止当前正在处理的PID

我已经创建了一个脚本,但它可以删除文件(如果它没有被锁定),但我正在寻找完整的解决方案,所以同样可以在windows scheduler上进行调度。 下面是我目前创建的脚本(没有太多帮助,但我可以在手动清除PID后删除日志)

@echo off&setlocal
设置“MySearchString=无法连接到”
对于/f“delims=“%%i in('dir/b/s/a-d^ | findstr/s/M/c:%MySearchString%”c:\ABCDE\temp\faulykernel\*.*)执行del“%%~i”>>c:\ABCDE\temp\script\output\faultykernel.txt
findstr/s/M/c:“c:\ABCD\temp\faulykernel*>c:\ABCD\temp\script\output\TEST.txt

对于/f“usebackq tokens=1-3 delims=”%%a在(“C:\ABCD\temp\script\output\TEST.txt”)中执行(

)
echo%sc%

您正在通过管道将dir结果传送到findstr,并且还使用带有文件引用的递归搜索,在这种情况下,管道输入将被忽略,因此是无用的。您正在重定向del的输出,但在标准输出流上没有输出,只是错误输出会得到文本,但要捕获文本,您必须使用
2>>filename
,否则您不提供任何关于fouindstring的详细信息,而是删除包含MySearchString的每个文件。感谢您的快速回答,实际上,我还想获取pid并杀死pid(存在数据库断开错误)以及日志文件…
for/f“delims=“%a in('findstr/smc:%MySearchString%“*”)do@ECHO del“%a”
findstr/s/M/c:'c:\ABCD\temp\faulykernel*>c:\ABCD\temp\script\output\TEST.txt for/f“usebackq tokens=1-3 delims=”。%a in(“C:\ABCD\temp\script\output\TEST.txt”)执行(TSKILL%%b)谢谢大家的帮助,我已经编写了完整的必需代码,它可以正常工作。
@echo off & setlocal
set "MySearchString= Failed to connect to <Database server>"
for /f "delims=" %%i in ('dir /b /s /a-d ^| findstr /s /M /c:"%MySearchString%" C:\ABCDE\temp\faulykernel\*.*') do del "%%~i"  >> C:\ABCDE\temp\script\output\faultykernel.txt
TSKILL %%b