在Unix环境下,命令行或者shell中sleep和kill是常见的动作,在Windows的.bat文件中处理类似的任务就不那么直接了,备忘如下:
[sleep]
ping 127.0.0.1 -n 需要的秒数+1 -w 1000 > nul
[kill]
taskkill /f /im "进程名(如notepad.exe)"
taskkill /f /fi "WINDOWTITLE eq notepad*"
其中/f表示强制,/im表示image镜像名(可执行文件名),/fi表示filter,后面跟表达式,比如这里的"窗体标题等于notepad*",支持wildcast通配符。
[sleep]
ping 127.0.0.1 -n 需要的秒数+1 -w 1000 > nul
[kill]
taskkill /f /im "进程名(如notepad.exe)"
taskkill /f /fi "WINDOWTITLE eq notepad*"
其中/f表示强制,/im表示image镜像名(可执行文件名),/fi表示filter,后面跟表达式,比如这里的"窗体标题等于notepad*",支持wildcast通配符。
二
由于没有原生的sleep或者wait命令,需要想其他办法在batch脚本里实现这个功能。
来源:http://stackoverflow.com/questions/735285/how-to-wait-in-a-batch-script
You can ping a random address and specify the desired timeout:
ping 123.45 . 67.89 - n 1 - w 10000 > nul
And since the address does not exists, it'll wait 10,000 ms (10 seconds) and returns.
- The
-w 10000
part specifies the desired timeout in milliseconds. - The
-n 1
part tells ping that it should only tries once (normally it'd try 4 times). - The
> nul
part is appended so the ping command doesn't output anything to screen.