|
本帖最后由 fzp070 于 2023-5-4 00:45 编辑
6楼的代码主要有两个地方要修改下:
一是For命令那行代码,要加个*号,"C:\Windows\web\*"
二是if那行代码,要么改成2楼的if not "%%~nxi"==Wallpaper,要么就if not %%i==%cd%\Wallpaper (
如下几个方案应该都是可以的,但web目录是系统目录,可能会没有权限删除,修改下文件夹当前用户权限试试吧。
2楼方案根据6楼路径和排除文件夹的修改- @echo off
- setlocal enableextensions
- set "FolderPath=C:\Windows\web"
- set "KeepFolder1=Screen"
- set "KeepFolder2=Wallpaper"
- set "KeepFolder3=Folder3"
- rem 遍历目标文件夹
- for /d %%f in (%FolderPath%\*) do (
- rem 如果不属于保留文件夹,则删除该文件夹及其所有内容
- if not "%%~nxf"=="%KeepFolder1%" if not "%%~nxf"=="%KeepFolder2%" if not "%%~nxf"=="%KeepFolder3%" (
- echo Deleting folder "%%~f"...
- rd /s /q "%%~f"
- )
- )
- echo Done.
- pause
复制代码
3楼方案根据6楼路径和排除文件夹的修改- @echo off
- cd /d C:\Windows\web\
- ::删除[C:\Windows\web\]文件夹内所有文件,除开子文件夹
- del /f/q C:\Windows\web\
- ::删除[C:\Windows\web\]内除 Screen和Wallpaper文件夹(及子文件夹) 外所有文件夹
- for /f "delims=" %%b in ('dir /b "C:\Windows\web"') do (
- if "Screen" NEQ "%%b" (
- if "Wallpaper" NEQ "%%b" (
- echo 删文件夹:%%b
- rd /s /q "C:\Windows\web\%%b")
- )
- )
- ping -n 5 127.1>nul
- exit
复制代码
修改后的6楼方案
- @echo off
- echo "使用脚本删除文件夹A中 除了特定文件意外的文件"
- echo.
- rem 进入文件夹web目录
- cd /d "C:\Windows\web"
- rem 对文件夹进行遍历,除保留文件夹1、2以外的文件夹进行删除
- for /D %%i in ("C:\Windows\web\*") DO (
- if not %%i==%cd%\Screen (
- if not %%i==%cd%\Wallpaper (
- echo 删文件夹:%%i
- rd /S /Q %%i
- ) else (
- rem 对保留文件夹2中的内容进行特殊处理,如有需求
- )
- )
- )
- pause
复制代码
|
|