- @ECHO OFF
- SETLOCAL ENABLEDELAYEDEXPANSION
- for /f "tokens=*" %%a in ('dir/a-d/b/oe') do s?et/a c+=1&set a!c!=%%a&set b!c!=%%~za&set c!c!=%%~xa
- for /l %%a in (1,1,%c%) do set/a d=%%a+1&for /l %%b in (!d!,1,%c%) do if not !b%%a!.==. call :1 %%a %%b
- goto :eof
- :1
- if !b%1!==!b%2! if !c%1!==!c%2! set b%2=&del "!a%2!"
- goto :eof
复制代码 上面的那段代码功能是 用批处理实现删除大小和类型一样的文件的代码。
我有10000多的文件夹 在其目录下执行。
问题点。1.执行起来比较慢。有什么方法能优化一下?比如将10000多文件排序每500百个执行一下上面的程序?还有别的好方法吗?
2.第三行中的[if not !b%%a!.==. call :1 %%a %%b ]代码中的[.==. ]与下面的调用是什么关系?不明白这个符号什么意思?
小弟我是菜鸟,没看明白 请高人指点迷津?
3.7行的【set b%2=&del "!a%2!" 】代码中的【=&】是什么意思?没看明白 请高人指点迷津? |