返回列表 发帖
本帖最后由 aloha20200628 于 2025-4-3 14:25 编辑

回复 1# ygqiang

本帖主要解决字符串中筛选指定关键词的问题...
以下是预览版,确认无误后可删除代码倒数第二行和第三行中的 echo, 变成实用版
@echo off &setlocal enabledelayedexpansion &cd /d "c:\"
for %%d in (
"Intel"
"PerfLogs"
"Program Files"
"Program Files (x86)"
"Windows"
"Users"
"8888"
"Boot"
"Config.Msi"
"Documents and Settings"
"MSOCache"
"ProgramData"
) do set d=!d! /c:"%%~d!"
for /f "delims=" %%d in ('dir/b/ad^|findstr /irv !d!') do echo,rd /q/s "%%d"
for /f "delims=" %%F in ('dir/b/a-d^|findstr /irv /c:"kernel.*" /c:"sealdr.*" /c:"ABSPE.*" /c:"bootmgr.*" /c:"BOOTSECT.*" ') do echo,del /q "%%F"
pause&exit/bCOPY

TOP

本帖最后由 aloha20200628 于 2025-4-3 16:45 编辑

回复 5# ygqiang

采用一楼用*通配符区分目录与文件的判据
以下代码是预览版,确认无误后可删除代码第4行和第5行中的 echo, 变成实用版
@echo off &setlocal enabledelayedexpansion &cd /d "c:\"
for /f "delims=:" %%n in ('findstr /bln ":::" "%~f0" ') do set "n=%%n"
for /f "usebackq skip=%n% tokens=1* delims=*" %%a in ("%~f0") do if "%%b"== "" (set d=!d! /c:"%%~a!") else (set F=!F! /c:"%%~a!")
for /f "delims=" %%d in ('dir/b/ad^|findstr /irv !d!') do echo,rd /q/s "%%d"
for /f "delims=" %%F in ('dir/b/a-d^|findstr /irv !F!') do echo,del /q "%%F"
pause&exit/b
:::
Intel
PerfLogs
Program Files
Program Files (x86)
Windows
Users
8888
Boot
Config.Msi
Documents and Settings
MSOCache
ProgramData
kernel*.*
sealdr*.*
ABSPE*.*
bootmgr*.*
BOOTSECT*.*COPY

TOP

返回列表