批处理 延时命令

批处理 延时命令

前言

因为我偶尔要在浏览器上看些视频,而播放视频有时候需要Flash,但是要命的是Flash带广告插件,经过我的排查,我发现广告是FlashHelperService.exe这个服务造成的,可以通过如下命令杀死这个进程:

1
taskkill /im FlashHelperService.exe /f

但是还是没有用,因为不知道什么时候FlashHelperService.exe这个服务又会偷偷运行,我需要反复杀进程,一两次还可以,多了真是烦躁.
于是我想着写个批处理脚本来定时杀进程

timeout命令

timeout是延时等待命令,该命令帮助文档如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
timeout [/t] timeout [/nobreak] 
描述:
这个工具接受超时参数,等候一段指定的时间(秒)或等按任意键。它还接受
一个参数,忽视按键。
参数列表:
/t timeout 指定等候的秒数。有效范围从 -199999 秒。
/nobreak 忽略按键并等待指定的时间。
/? 显示此帮助消息。
注意: 超时值 -1 表示无限期地等待按键。
示例:
timeout /?
timeout /t 10
timeout /t 300 /nobreak
timeout /t -1

从帮助文档可以看出:timeout /t 10就是延迟10秒的意思.

定时杀死进程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
:again
:: 查找FlashHelperService.exe这个进程
tasklist | findstr /i FlashHelperService.exe
:: 如果返回值大于或者等于1
IF ERRORLEVEL 1 (
:: 返回值大于0表示上述命令失败,也就是找不到FlashHelperService.exe这个进程
echo ERRORLEVEL=%errorlevel%,找不到FlashHelperService.exe进程
) ELSE (
:: 返回值为0表示上述命令成功,也就是找到FlashHelperService.exe这个进程
echo ERRORLEVEL=%errorlevel%,找到FlashHelperService.exe进程
echo 杀死这个该死的进程.%date%%time%>>杀死FlashHelp日志.txt
:: 打开日志,让我知道
notepad 杀死FlashHelp日志.txt
taskkill /im FlashHelperService.exe /f
)
:sleep
:: 延时60*15=5400秒,也就是15分钟运行一次.
timeout /t 5400
:: 清屏
cls
:: 循环继续开始
goto again