中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 09:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这个进程如何判断为否定{已结} 查看 973 回复 8
楼 主 这个进程如何判断为否定{已结} 发表于 2006-11-19 13:25 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
tasklist /NH |FIND "QQ">nul && echo QQ.exe已经存在! ||"E:\Program
Files\Tencent\QQ\CoralQQ.exe"

这个判断是,这运行的结果是:如果进程里面有QQ.exe 这个程序在运行!,
它就不运行 E:\Program Files\Tencent\QQ\CoralQQ.exe 这一段啦,
请问如何修改成,如果有QQ.exe这个程序在运,就运行,后面这一段呢!谢谢


[ Last edited by chainliq on 2006-11-20 at 07:59 AM ]
2 发表于 2006-11-19 14:17 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
19年会员
UID 67972
状态 离线
tasklist /NH |FIND "QQ">nul && "E:\Program Files\Tencent\QQ\CoralQQ.exe"

有QQ这个进程再运行一次?不太懂你说什么。
3 发表于 2006-11-19 14:38 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
就是说,如果进程里面有QQ.exe这个程序在运行
就运行:start "E:\Program Files\Tencent\QQ\CoralQQ.exe"

[ Last edited by chainliq on 2006-11-19 at 04:18 PM ]
4 发表于 2006-11-19 14:49 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
19年会员
UID 67972
状态 离线
Originally posted by chainliq at 2006-11-19 02:38 PM:
就是说,如果进程里面QQ.exe
就运行:start "E:\Program Files\Tencent\QQ\CoralQQ.exe"



如果进程里面QQ.exe
这个是什么意思?
5 发表于 2006-11-19 17:39 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
这样为什么不能执行呢,在2000系统下运行!
tasklist|find "chainliq.exe">nul && ||mshta javascript:alert("您好!");window.close();

就是说,如果进程里面有: chainliq.exe 存在,则运行: mshta javascript:alert("您好!");window.close();
这一段
6 发表于 2006-11-20 01:21 ·  中国 广东 清远 联通
高级用户
★★
积分 846
发帖 247
注册 2006-10-27 12:03
19年会员
UID 68504
性别 男
来自 湖南==》广东
状态 离线
改成:tasklist /NH |FIND "QQ">nul && "E:\Program Files\Tencent\QQ\CoralQQ.exe" ||echo QQ还没运行!
7 发表于 2006-11-20 03:06 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
19年会员
UID 67972
状态 离线
tasklist /NH |find /i "chainliq.exe" >nul&&mshta javascript:alert("您好!");window.close();
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
chainliq +3 2006-11-20 07:57
8 发表于 2006-11-20 06:06 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  用 find 语句会因检测不严格而导致错误的结果,比如某个进程名为 abcQQ.exe 的话,用 find "QQ.exe" 则会认为找到了匹配的进程。要避免这个问题,最好在 for 语句中用 == 符号来判断,例如:

@echo off
:: if 语句可以用 /i 参数来忽略大小写
for /f %%i in ('tasklist') do if "%%i"=="QQ.exe" echo QQ.exe在运行&goto end
echo 进程中没有名为 QQ.exe 的进程

:end
pause
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
9 发表于 2006-11-20 07:58 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
20年会员
UID 53857
性别 男
来自 广西贵港
状态 离线
呵呵,问题解决啦,学习中`````谢谢各位的帮忙!
论坛跳转: