taskkill一个杀死任务的批处理文件

时间:2016-12-19 14:03:59

标签: batch-file cmd putty

我有一个进程,如果它没有找到它的目标就会卡住,所以我会在一段时间之后调用批处理文件来杀死它

start C:\file\server\bin\killput.bat
C:\file\server\bin\putty.exe -ssh 192.168.0.210 -l oracle -pw oracle -m C:\file\server\bin\List_AIX.txt

如果我的进程被执行,那么如何杀死运行kill命令的cmd

我的killput.bat批处理文件的代码

Timeout 20
taskkill /f /im putty.exe

2 个答案:

答案 0 :(得分:0)

我检查了我的腻子,如果失败,它就不会保持任何连接,所以你只是在#net; netstat"命令输出,如果你在该输出中找不到它,则表示连接失败或刚刚完成。所以我认为你可以在你的杀戮批次上做类似的事情:

timeout 20

SET tempfl=c:\windows\temp\netstatresult.txt
netstat -aonb>%tempfl%

for /f "delims=" %i in ('findstr /i /C:putty %tempfl%') do SET output=%i
if NOT DEFINED %output% taskkill /f /im putty.exe

del %tempfl%

因此,这会将 netstat 的输出写入临时文件,之后我们使用 findstr 检查commmand的输出是否包含子字符串putty。 如果 findstr 有任何结果,则变量输出设置为值,否则无法定义,因此如果有值,则表示putty成功运行,你不必杀死它,如果你不能杀死腻子过程。

如果没有定义变量,那么运行 taskkill 只会有一个简单的,然后删除创建的临时文件。

确定您是否不知道netstat用于什么: https://commandwindows.com/netstat.htm

答案 1 :(得分:0)

Start C:\file\server\bin\putty.exe -ssh 192.168.0.210 -l oracle -pw oracle -m C:\file\server\bin\List_AIX.txt
Timeout 20
Taskkill /IM PuTTY.exe