个人觉得,namejm的代码效率还有挖掘的潜力。
因为namejm在代码中,几乎对所有的文件夹都进行了检测,举例说明:
现有一父文件夹f:\test,一子文件夹f:\test\test。
在namejm的代码中,不管是子文件夹还是父文件夹都会去检测是否为空(父文件夹肯定不为空),这样,会导致效率打折扣。于是,个人就尝试用递归的方法找出 那个 不含任何子文件夹的 文件夹,然后只要检测这些文件夹是否是空文件夹就行了,测试代码:- @echo off&setlocal enabledelayedexpansion
- for /d %%i in (f:\*) do call :Check "%%i"
- for /f "delims=" %%i in (test.txt) do (
- set flag=0
- for /f "delims=" %%j in ('dir /a-d /b %%i 2^>nul') do set flag=1
- if !flag! EQU 0 echo %%i为空文件夹)
- pause>nul
- :Check
- set "var=%~1"
- set flag=0
- for /D %%i in ("%~1\*") do (
- set flag=1
- call :Check "%%i"
- )
- if %flag% EQU 0 (>>test.txt echo "%var%"& set flag=1)
复制代码 不过效率还不是很高,较namejm的略高。
不过,两种方法各有优缺点(而且检测结果有些出入,原因正在查...):
namejm的代码优点:可以检测系统文件夹;代码简洁;缺点:速度略慢;
上面的递归算法优点:速度稍快;缺点:不能探测系统目录,如:回收站等;
附:两种方法检测结果
namejm的代码:- 18:09:59.12
- F:\System Volume Information\_restore{CD2BF03E-A00F-4EFC-A572-06BD79233DB7}
- F:\2\新建
- F:\2\新建文件夹\新建文件夹\新建文件夹1
- 找不到文件
- F:\RECYCLER\S-1-5-21-1060284398-813497611-13438020022-500.
- 找不到文件
- F:\RECYCLER\S-1-5-21-1060284298-813497611-13438020086-500\S-1-5-21-1064224258-81
- 3597681-13430823629-500.
- 找不到文件
- F:\RECYCLER\S-1-5-21-1060284298-813497611-13438020086-500\S-1-5-21-1064442258-81
- 3597862-13230823629-500.
- F:\Recycled\Df1
- F:\Recycled\Df2
- F:\Recycled\Df91
- F:\Recycled\Df42\班主任工作
- F:\Recycled\Df42\10班成绩
- F:\Recycled\Df42\班会课(修改)\大学照片\班会课~2\大学照片
- F:\Recycled\Df62\芳香烃 示例1
- F:\办公\CN-DOS批处理精华贴(2007-A)(IE7)
- F:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\Desktop
- F:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\Favorites
- F:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\My Documents
- F:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\OE
- F:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\Temp
- F:\办公\★化学★\化学反应原理课件\第二章\化学平衡\平衡图像(第四课时)
- 18:11:18.35
复制代码 递归算法运行结果:- 生成临时文件18:15:09.23.....
- 生成临时文件完成.....
- "f:\2\新建文件夹\新建文件夹\新建文件夹1"
- "f:\2\新建"
- "f:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\Desktop"
- "f:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\Favorites"
- "f:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\My Documents"
- "f:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\OE"
- "f:\办公\经典代码\经典代码\系统优化\C盘个人资料转移器\Temp"
- "f:\办公\CN-DOS批处理精华贴(2007-A)(IE7)"
- "f:\办公\★化学★\化学反应原理课件\第二章\化学平衡\平衡图像(第四课时)"
- "f:\办公\PowerpointMOBAN\PowerpointMOBAN\Groovy Baby"
- "f:\办公\PowerpointMOBAN\PowerpointMOBAN\3 New free PowerPoint Template Designs"
- "f:\办公\PowerpointMOBAN\PowerpointMOBAN\Preprogrammed PowerPoint Templates"
- "f:\办公\PowerpointMOBAN\PowerpointMOBAN\Sunrise and Sunsets, Clouds"
- ========完成18:16:06.57==============
复制代码
|