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

[系统相关] 批处理如何查找名字为全数字的进程,并结束该进程?

本帖最后由 pcl_test 于 2016-2-10 11:54 编辑

比如windows系统的进程中存在5452143.exe(当然这个进程名是随机全数字组合的)

如何定位该进程,然后结束该进程。

回复 1# hijackle
  1. @echo off&(setlocal enabledelayedexpansion)>nul 2>nul
  2. for /f "delims=" %%i in ('wmic process get caption /value^|findstr/i "[0-9]"')do (set "%%i"
  3. for /f "delims=" %%j in ("!caption!")do (set "name=%%~nj"&set "new="&set "n="
  4.   for /l %%n in (0,1,8092)do if /i not "%%~nxj"=="" if /i not "!name:~%%n,1!"=="" (
  5.    for /l %%o in (0,1,9)do if /i "!name:~%%n,1!"=="%%o" (set/a "n+=1"
  6.     if defined new (set "new=!new!!name:~%%n,1!")else (set "new=!name:~%%n,1!")
  7.    )
  8.   )
  9.   if /i "!new!%%~xj"=="%%~nxj" (
  10.    echo,!n!
  11.    if !n! gtr 4 (
  12.     echo,%%~nxj
  13.    )
  14.   )
  15. )
  16. )
  17. pause
复制代码

注:没测试
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

Get-Process|Where-Object{$_.processname -match "^[0-9]{4,}$"}|Stop-Process


2楼修改了一下,匹配最少四位数字

TOP

回复 3# whcg88ff


    findstr /i "^\"[0-9][0-9][0-9][0-9][0-9]*\.exe\""

TOP

测试第一条命令有效,请问大大,怎么样可以限制数字的位数呢?比如4位数以上的进程全部结束

TOP

这样:
  1. for /f delims^=^" %%a in ('tasklist /fo csv ^| findstr /i "^\"[0-9][0-9]*\.exe\""') do taskkill %%a
复制代码
但其实涉及到系统管理操作的时候,可以的话建议用 powershell:
  1. Get-Process|Where-Object{$_.processname -match '^\d+}|Stop-Process
复制代码

TOP

返回列表