怎样用批处理判断一个程序是否在运行,如果运行就关闭该程序,如果没运行就打开该程序.

就是说 双击它,打开了某个程序,再双击它就把该程序关闭了.
之前有个高人这样写:

@echo off
pushd D:\a
set p=Hasher.exe
tasklist|findstr /i %p%&&taskkill /f /im %p%||start "" "%p%"

想问如果我要这样该怎么修改:
有个批处理 1.bat,运行时会打开A.exe和B.exe,还一个批处理2.bat,可以把A和B关闭的.想问下能不能编一个批处理,先判断是否有A.exe或B.exe在运行,如果运行就执行2.bat,没运行就执行1.bat.

我可能说错话了,把他得罪了,他把自己的回答删了.求大大们对俺能网开一面,小弟不太会说话.

好了,我修改了一下上面的语句,试了下能运行.我没说清楚,那个1.bat和2.bat是和要创建的bat在一个目录里的,我创建的bat文件内容:
tasklist|findstr /i A.exe&&2.bat||1.bat
这样应该不会出现什么问题吧

第1个回答  2012-09-06
@echo off
pushd D:\a
set A=A.exe
set B=B.exe
tasklist|findstr /i %A%&&start "" "2"&&goto :eof
tasklist|findstr /i %B%&&start "" "2.bat"&&goto :eof
start "" "1.bat"本回答被提问者采纳
第2个回答  2012-09-05
@echo off
pushd d:\qq2012
set p=qq.exe
tasklist|findstr /i %p%&&taskkill /f /im %p%||start "" "%p%"追问

哇,真的管用,我有2个批处理,假设 1.bat 和 2.bat, 1.bat运行时会打开A.exe和B.exe程序,我想弄个批处理,双击它,它会检测有没有A.exe(或检测B.exe)在运行,如果有就运行2.bat.如果没有就运行1.bat,这个可以实现吗?谢谢大大

追答

tasklist|findstr /i a.exe&&start 2.bat||start 1.bat

追问

非常感谢,我想学像这样的批处理程序编写,应该看什么书呢?这是DOS编程批处理编程呢?追加100分,不介意我+分吧,加分是我唯一能报答的.再次感谢大大,我不追问了.

追答

先看《WINDOWS XP/2003/VISTA DOS命令行实用精解》


再看

《批处理命令在服务器管理中的典型应用》

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网