中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-02 10:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 已解决! "找不到a.exe进程则启动这个a.exe的程序" 查看 1,038 回复 4
楼 主 已解决! "找不到a.exe进程则启动这个a.exe的程序" 发表于 2006-11-07 05:47 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
写一个 bat 并运行
要能判断 当前进程有没有 a.exe
如果有就算了
如果没有,就运行a.exe
怎么写啊??
晕死了,写了几次都不会.
我这样写的。。。。



for %%a in (tasklist/NH) do %%a>1.txt
type 1.txt | if not find "a.exe"
a.exe

--------------------------------------------
问题已完美解决,感谢老大的帮助.
youxi01,代码如下:
tasklist /NH |FIND "QQ">nul && echo QQ.exe已经存在! ||"E:\Program
Files\Tencent\QQ\CoralQQ.exe"

[ Last edited by huzixuan on 2006-11-7 at 06:33 AM ]
2 发表于 2006-11-07 06:58 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  只通过 find 来查询,结果有可能不准确,比如:假设有QQ1.exe、QQQQ.exe……之类的进程。最好通过findstr正则表达式或者 for 语句中的 "%%i"=="QQ.exe" 格式来精确匹配。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-11-07 08:11 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
不会哎!
你把全部的写写,偶看看并抄抄.
最后就谢谢了.
4 发表于 2006-11-07 08:38 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  帖一段代码,请自行揣摩(若要严格匹配大小写,请把 if 后的 /i 去掉):

@echo off
for /f "skip=1" %%i in ('tasklist /nh') do if /i "%%i"=="QQ.exe" goto succeed
echo 没有找到名为 QQ.exe 的进程
pause>nul
goto :eof

:succeed
echo 找到了名为 QQ.exe 的进程
pause>nul
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2006-11-07 23:44 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
哦,好
谢斑竹
3Q唯蕊马吃
论坛跳转: