标题: 问题请教:一个DOS窗口怎样知道另一个DOS窗口已关闭
[打印本页]
作者: rgbsky
时间: 2008-4-5 16:36
标题: 问题请教:一个DOS窗口怎样知道另一个DOS窗口已关闭
我有一个程序要运行2个dos窗口(称为A和B),其中A要等B执行完才继续执行。但B是要用"CTRL+C"来关闭的,请问这时有什么办法来让A知道B已经关闭?
-----
如果B是正常退出,我会想到B中用一个临时作标志,A中判断该文件就可以了。但B要用CTRL+C来关闭,请高手支招。。。。
第一次上DOS联盟,慕名而来。。。希望不会让我失望。。。谢谢大家!!!
作者: fastslz
时间: 2008-4-5 16:50
运行环境?
DOS窗口?CMD窗口?win2000?winxp?
作者: DOS95
时间: 2008-4-7 05:12
我想可以在 A 中用 tasklist 列进程,用 find 看有几个 cmd 在运行,循环检测,当只有一个 cmd 就可以认为 B 被关闭了,然后该做什么就可以做了
作者: yyqheaven
时间: 2008-4-7 14:51
我也不清楚,顶一下
作者: jiulong
时间: 2008-4-9 03:04
如果根据进程的话是做不到的,两个进程都是cmd.exe
不知道如何判断,等待高手答复吧
作者: fastslz
时间: 2008-4-9 13:36
下面代码适合XP
@echo off
>B.bat echo mode con cols=18 lines=6
>>B.bat echo pause
start "" B.bat
:xxx
Wmic Process Where "Name='cmd.exe'" Get CommandLine>tmp.txt
find /i "B.bat">nul tmp.txt
if %errorlevel%==0 (echo 没关闭) else echo 已关闭
ping -n 3 127.0.1>nul
goto xxx
作者: chishingchan
时间: 2008-4-17 08:23
六楼的代码不断循环显示没关闭,关闭后循环显示关闭,按右上角的红X,机器蓝屏!
作者: cusa
时间: 2008-4-18 11:24
我的倒不兰屏。。不过也是不行
作者: DOS95
时间: 2008-4-20 08:59
这是我的示范代码,LZ可以参考一下:
tasklist|find/c "cmd.exe"|find "2" ;;判断是不是有2个CMD窗口
if errorlevel==1 goto 1cmdwindow ;;返回0时是2个CMD,1时不是
echo B.bat working...
goto batend
:1cmdwindow
echo B.bat close
:batend