标题: [文件操作] 批处理如何快速查找并删除大批量文件? [打印本页]
作者: 627988244 时间: 2014-10-27 14:55 标题: 批处理如何快速查找并删除大批量文件?
现在有个文件夹,每个文件夹中有上万个子文件夹,每个子文件夹中又有上万张图片,其中有些大小为190字节的是空白图需要删除。
我用了网上找的代码并做了改动,刚开始运行速度还比较快,到后来越来越慢,要重新运行才行。运行了整整3天才删了三分之一。
请问各位大神有什么办法可以快速查找并删除文件吗?- @echo off
- setlocal enabledelayedexpansion
- set /a sum=0
- echo.
- echo.
- echo 删除当前所在目录及其子目录下所有大小为190字节的png文件(即空白图)
- echo.
- echo 当前工作目录为: %cd%
- echo.
- echo 按任意键 开始删除空白图
- pause>nul
- echo -----------------------------------------------------------------------------
-
- for /r %%1 in (*.png) do if %%~z1 equ 190 del %%~1&&echo 成功删除空白图:%%1&&set /a sum=sum+1
- )
-
- )
- echo -----------------------------------------------------------------------------
- echo 共删除%cd%目录下 空白图个数:%sum%
- echo.
- echo.
- echo 按任意键退出
- pause>nul
- set sum=
- exit
复制代码
作者: DAIC 时间: 2014-10-27 15:34
- @echo off
- echo 删除当前所在目录及其子目录下所有大小为190字节的png文件(即空白图)
- echo 当前工作目录为: %cd%
- echo 按任意键 开始删除空白图
- pause>nul
- for /d %%i in (*) do (
- echo 处理文件夹 %%i -----------------------------------------------------------------------------
- pushd "%%i"
- for %%j in (*.png) do if %%~zj equ 12 del /f /q "%%j"
- popd
- )
- pause
复制代码
这样效果如何?
作者: 627988244 时间: 2014-10-27 16:06
回复 2# DAIC
多谢大神!!!快了很多,之前处理一个文件夹需要二三十秒,现在只需几秒了。
另外还想再问下,我之前代码运行慢的原因是什么,因为每次都求和了?还是因为打印得太多了?能否多个文件夹一起并行处理以加快速度?
作者: 627988244 时间: 2014-10-27 16:13
回复 2# DAIC
另外,如果文件夹有多层呢?代码应该怎么写比较好?
作者: DAIC 时间: 2014-10-27 16:33
回复 4# 627988244
把你原来那个代码里面 sum 计数的功能去掉看看能提高多少
作者: 627988244 时间: 2014-10-27 16:49
回复 5# DAIC
去掉了sum感觉差不多。
作者: DAIC 时间: 2014-10-27 18:01
回复 4# 627988244 - @echo off
- echo 删除当前所在目录及其子目录下所有大小为190字节的png文件(即空白图)
- echo 当前工作目录为: %cd%
- echo 按任意键 开始删除空白图
- pause>nul
- for /d %%i in (*) do (
- echo 处理文件夹 %%i -----------------------------------------------------------------------------
- pushd "%%i"
- for /r %%j in (*.png) do if %%~zj equ 190 del /f /q "%%j"
- popd
- )
- pause
复制代码
作者: 627988244 时间: 2014-10-27 19:19
回复 7# DAIC
/r 放在09行吗?我觉得应该在06行吧。因为我是想遍历bat文件所在的目录下的所有文件。
作者: DAIC 时间: 2014-10-27 20:25
回复 8# 627988244
你的想法错了,测试一下代码就到有没有错误啦。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |