批处理删除C盘除了C:\Windows C:\Program Files (x86) C:\Program Files C:\ProgramData这4个文件夹以外其它所有文件夹的*.xls *.xlsm *.xlsx *.xlsb这4种文件,要注意的是排除的4个夹是包含空格的请用引号,这个用gpt4写了一下午,期间改了好多次就是没一次能实现效果的- @echo off
- setlocal enabledelayedexpansion
-
- REM 定义要排除的文件夹
- set "exclude1=C:\Windows"
- set "exclude2=C:\Program Files (x86)"
- set "exclude3=C:\Program Files"
- set "exclude4=C:\ProgramData"
-
- REM 遍历C盘根目录下的所有文件夹
- for /d %%d in ("C:\*") do (
- set "skip=0"
-
- REM 检查当前文件夹是否在排除列表中
- for %%e in ("%exclude1%" "%exclude2%" "%exclude3%" "%exclude4%") do (
- if /i "%%~d"=="%%~e" set "skip=1"
- )
-
- REM 如果不在排除列表中,则删除指定类型的文件
- if "!skip!"=="0" (
- del /q "%%d\*.xls" "%%d\*.xlsm" "%%d\*.xlsx" "%%d\*.xlsb"
- )
- )
-
- echo 删除完成!
- pause
复制代码 这是gpt最终得到的批处理
我觉得应该实现的思路是先排除掉这几个文件夹,然后针对获取到的每个文件夹来执行类似 del 路径*.xls /f /s /q才是正确 |