Board logo

标题: [其他] [已解决]批处理如何控制当前正在执行命令强制结束 [打印本页]

作者: huhete    时间: 2010-4-14 23:01     标题: [已解决]批处理如何控制当前正在执行命令强制结束

如:for /f %%i in (x.txt) do xxx.exe %%i
在执行这个循环的时候,如果%%i为一些具体的值时,xxx.exe执行会出现假死,需要ctrl+c结束,才能继续循环,有什么好的方法,控制命令的执行时间,每次循环让它自动结束。[已解决]

[ 本帖最后由 huhete 于 2010-4-15 12:08 编辑 ]
作者: hanyeguxing    时间: 2010-4-14 23:35

原帖由 huhete 于 2010-4-14 23:01 发表
如:for /f %%i in (x.txt) do xxx.exe %%i
在执行这个循环的时候,如果%%i为一些具体的值时,xxx.exe执行会出现假死,需要ctrl+c结束,才能继续循环,有什么好的方法,控制命令的执行时间,每次循环让它自动结束。 ...

我看不出批处理这样写的目的是什么。。。。
作者: GNU    时间: 2010-4-14 23:40

在每次执行xxx.exe之前,先杀掉它的进程。
作者: huhete    时间: 2010-4-15 00:07

是不是需要我有一个守护的批处理啊,每次循环前先执行批处理监视,如果超时则结束xxx.exe的进程啊

但是这样不能判断是不是本次循环产生的xxx.exe的进程啊

[ 本帖最后由 huhete 于 2010-4-15 00:10 编辑 ]
作者: hanyeguxing    时间: 2010-4-15 00:19

在for内做判断。。。
作者: GNU    时间: 2010-4-15 00:28

  1. @echo off
  2. for /f %%i in (x.txt) do (
  3.     ping -n 10 127.1 >nul
  4.     taskkill /f /im xxx.exe 1>nul 2>&1
  5.     xxx.exe %%i
  6. )
复制代码

作者: philorain    时间: 2010-4-15 02:07

ls的没有用,如果上一个是假死的,就不会退出xxx.exe也就不可能进行这一次循环
作者: yangfengoo    时间: 2010-4-15 07:01

  1. @echo off
  2. for /f %%i in (x.txt) do (
  3.         start "" xxx.exe %%i
  4.        ping -n 10 127.1 >nul
  5.        taskkill /f /im xxx.exe 1>nul 2>&1
  6. )
复制代码

作者: GNU    时间: 2010-4-15 17:35     标题: 回复 7楼 的帖子

  1. @echo off
  2. for /f %%i in (x.txt) do (
  3.     ping -n 10 127.1 >nul
  4.     taskkill /f /im xxx.exe 1>nul 2>&1
  5.     start xxx.exe %%i
  6. )
复制代码

作者: qzwqzw    时间: 2010-4-15 17:45

回8楼和9楼
最好加一个进程是否存在并随时继续循环的判断
这样可以不必每个xxx.exe进程都等待9秒




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2