批量删除文件扩展名批处理文件
Mass delete file extension batch file
您好,我创建了一个批处理文件,用于删除您 运行 它要求的某个扩展名的所有文件。我需要删除 2,111,000 个 .txt 文件,批处理文件一次只删除 3 个,这将永远删除这些文件。有没有办法让它更快,或者如果有人有更好的代码来做到这一点?
这是我的代码:
@ECHO OFF
CLS
SET found=0
ECHO Enter the file extension you want to delete...
SET /p ext="> "
IF EXIST *.%ext% ( rem Check if there are any in the current folder :)
DEL *.%ext%
SET found=1
)
FOR /D /R %%G IN ("*") DO ( rem Iterate through all subfolders
IF EXIST %%G CD %%G
IF EXIST *.%ext% (
DEL *.%ext%
SET found=1
)
)
IF %found%==1 (
ECHO.
ECHO Deleted all .%ext% files.
ECHO.
) ELSE (
ECHO.
ECHO There were no .%ext% files.
ECHO Nothing has been deleted.
ECHO.
)
PAUSE
EXIT
我可以加快速度吗?
我能想到的最快方法就是:
cd /BASE_PATH
del /s *.txt
您最好让 OS 按顺序删除文件,而不是尝试并行删除多个文件。如果您使用的是机械 HDD 而不是 SSD,您可以将文件放在不同的盘片、磁头、扇区等上,并且取决于您对 I/O 绑定资源施加的负载量,整个操作需要更多自驱动器必须到处寻找数据以来的时间。另外,HDD 上的随机访问非常糟糕。
您可能想这样尝试:
DIR C:\*.txt /S /B > filelist
FOR /f %%i in (filelist) DO ECHO DELETE %%i
当您确定要 运行 时删除 'ECHO' ;-)
但这只有在您想单独处理每个文件时才有意义,例如用于记录目的。如果不是,那么@Dogbert 解决方案更短。
您好,我创建了一个批处理文件,用于删除您 运行 它要求的某个扩展名的所有文件。我需要删除 2,111,000 个 .txt 文件,批处理文件一次只删除 3 个,这将永远删除这些文件。有没有办法让它更快,或者如果有人有更好的代码来做到这一点?
这是我的代码:
@ECHO OFF
CLS
SET found=0
ECHO Enter the file extension you want to delete...
SET /p ext="> "
IF EXIST *.%ext% ( rem Check if there are any in the current folder :)
DEL *.%ext%
SET found=1
)
FOR /D /R %%G IN ("*") DO ( rem Iterate through all subfolders
IF EXIST %%G CD %%G
IF EXIST *.%ext% (
DEL *.%ext%
SET found=1
)
)
IF %found%==1 (
ECHO.
ECHO Deleted all .%ext% files.
ECHO.
) ELSE (
ECHO.
ECHO There were no .%ext% files.
ECHO Nothing has been deleted.
ECHO.
)
PAUSE
EXIT
我可以加快速度吗?
我能想到的最快方法就是:
cd /BASE_PATH
del /s *.txt
您最好让 OS 按顺序删除文件,而不是尝试并行删除多个文件。如果您使用的是机械 HDD 而不是 SSD,您可以将文件放在不同的盘片、磁头、扇区等上,并且取决于您对 I/O 绑定资源施加的负载量,整个操作需要更多自驱动器必须到处寻找数据以来的时间。另外,HDD 上的随机访问非常糟糕。
您可能想这样尝试:
DIR C:\*.txt /S /B > filelist
FOR /f %%i in (filelist) DO ECHO DELETE %%i
当您确定要 运行 时删除 'ECHO' ;-)
但这只有在您想单独处理每个文件时才有意义,例如用于记录目的。如果不是,那么@Dogbert 解决方案更短。