[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]批处理如何结束指定目录下运行的随机进程

情况是这样的,C:\a目录下,每次开机都会生成一个exe文件,其文件名是随机产生的,每次都不一样,所以其进程名也每次不一样。而且目录下还有其他exe运行,但其他的exe文件名则是固定的,现在需要结束这个随机的进程名,而不结束同一路径下其他的进程,就是要排除同一路径下其他的进程。该怎么写代码呢?

[ 本帖最后由 q115643492 于 2011-1-31 16:47 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

你那个估计是病毒导致的,建议杀毒彻底解决
删除也可以
del /s/q C:\a\*.exe

TOP

1,set "r=c:\windows\system32\" 设置路径,注意:后面带\
2,将该目录下所有固定进程名定义为变量,例如set ""services"==",注意:变量名中不带.exe
  1. @echo off&setlocal enableDelayedExpansion
  2. set "r=c:\windows\system32\"
  3. set ""svchost"=="
  4. set ""winlogon"=="
  5. set ""csrss"=="
  6. set ""services"=="
  7. set ""smss"=="
  8. set ""cmd"=="
  9. for /f "tokens=1* delims==" %%a in ('wmic process get ExecutablePath^,ProcessId/value') do (
  10.     if /i "%%a"=="ExecutablePath" if /i "%%~dpb"=="%r%" if not defined "%%~nb" set e==
  11.     if /i "%%a"=="ProcessId" if defined e set e=&set a=!a! /pid %%b
  12. )
  13. if defined a taskkill /f %a%
复制代码
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

谢谢,代码完全可行!

TOP

返回列表