中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 00:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 结束进程方面 ?? 查看 826 回复 5
楼 主 结束进程方面 ?? 发表于 2007-04-05 09:29 ·  中国 湖北 武汉 电信
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
[size=5][size=4][size=4]如何同时结束打开在 除c 盘以外 硬盘上的进程,也就是说在d e f......盘上打开的 进程, 只保留在c盘打开的进程???
比如:
tasklist>task.txt
for /f a%% in (task.txt) do taskkill /f /im a%%
这样会连在c 盘打开的进程一起关闭的,寻求高手指教!
2 发表于 2007-04-05 11:55 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
试试这个; 效率比较慢;不过是符合要求的


  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1 delims=" %%i in ('wmic process get name ^| more +3') do set process_name=%%i && call :select
  3. goto exit
  4. :select
  5. set process_name=%process_name: =%
  6. for /f %%a in ('wmic process where name^="%process_name%" get executablepath ^| more +1') do (
  7. set process_path=%%a
  8. set process_path=!process_path:~0,1!
  9. )
  10. if /i not "%process_path%"=="c" taskkill /f /im %process_name%
  11. :exit
BJSH发表于: 2007-04-04 22:45


[ Last edited by bjsh on 2007-4-4 at 11:01 PM ]
3 发表于 2007-04-07 06:30 ·  中国 湖北 武汉 电信
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
.
.
先谢谢这位仁兄,我还有个疑问:

如果是要结束某个指定盘上的全部进程,比如打开在 f 盘的进程,又是如何呢 ?>?
4 发表于 2007-04-07 06:46 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
把第10句改为

if /i "%process_path%"=="f" taskkill /f /im %process_name%


就可以了
5 发表于 2007-04-07 08:26 ·  中国 湖北 武汉 电信
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
Thank you so much !!
6 发表于 2007-04-07 08:34 ·  中国 湖北 武汉 电信
中级用户
★★
积分 313
发帖 162
注册 2007-04-02 06:45
19年会员
UID 83693
性别 男
状态 离线
仁兄,可否再问个问题:

每阁 3min 运行 一次命令的 at 命令 ??
论坛跳转: