- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (1.txt) do set #%%a==
- for /f "delims=" %%a in ('dir /b/s/a D:') do if defined #%%~nxa (
- del /s /q /f /a "%%a" 2>nul
- set a=%%~aa
- if /i "!a:~0,1!"=="d" rd /s /q "%%a" 2>nul
- )
复制代码 第一个for读取文本,并将所有名称定义为变量
第二个for解析dir命令的输出,dir输出d盘所有文件和文件夹,包括隐藏、系统属性。
if defined #%%~nxa 扩展这个文件(夹)的名称,如果被定义,则符合条件
1,如果是文件,则del直接删除。
if /i "!a:~0,1!"=="d" 判断是否为文件夹条件不为真,rd不执行
2,如果是文件夹,
则无论是否使用/s参数,del都只会去删除该文件夹内的文件,而不删除文件夹本身。
因为rd不能删除文件夹内可能包含的系统或隐藏属性文件,所以必须先用del删除
if /i "!a:~0,1!"=="d" 判断是否为文件夹条件为真,执行rd删除文件夹及可能存在的子文件夹
[ 本帖最后由 hanyeguxing 于 2010-12-2 11:12 编辑 ] |