由于无法在原创贴发布,所以发到这里
该批处理是一年前开发的,当时共开发了三个版本
最终有一个版本是比较成功的
至于运行原理,现在忘了,现献上代码供大家讨论试用
由于不清楚winsxs里的深度详细机理,所以只把扫描到的东西放到del.txt
为了运行成功,建议用已管理员身份运行- @echo off
- mode con:cols=80 lines=5
- setlocal enabledelayedexpansion
- set scan=
- set found=0
- for /f %%a in ('dir %windir%\winsxs\*/ad/b') do (
- set folder=%%a
- set folder=!folder:_= !
- set keyword1=
- set keyword2=
- set keyword3=
- set keyword4=
- for %%b in (!folder!) do (
- if "!keyword4!"=="" (
- set keyword4=!keyword3!) else (
- set keyword4=!keyword4!_!keyword3!)
- set keyword3=!keyword2!
- set keyword2=!keyword1!
- set keyword1=%%b)
- if defined keyword4 (
- for %%b in (version!keyword2!) do (
- if "!keyword4!"=="!keyword!" (
- if "!%%b!"=="" (
- set language=!language! !keyword2!
- set %%b=!keyword3!) else (
- set flag=
- set partnow=!keyword3:.= !
- set partnew=!%%b!
- for %%c in (!partnow!) do (
- if "!flag!"=="" (
- for /f "tokens=1* delims=." %%d in ("!partnew!") do (
- if %%c lss %%d set flag=0&set/a found+=1
- if %%c gtr %%d set flag=1&set/a found+=1
- set partnew=%%e)))
- if "!flag!"=="0" echo %%a>>%~dp0del.txt
- if "!flag!"=="1" (
- echo !keyword4!_!%%b!_!keyword2!_!keyword1!>>%~dp0del.txt
- set %%b=!keyword3!))) else (
- for %%c in (!language!) do set version%%c=
- set language=!keyword2!
- set %%b=!keyword3!
- set keyword=!keyword4!)))
- set/a scan+=1
- cls
- echo 已找到/扫描数:!found!/!scan!
- echo 正在扫描:%windir%\winsxs\%%a)
- cls
- echo 已找到/扫描数:!found!/!scan!
- echo 扫描完毕!
- pause>nul
复制代码
|