Delete all files of specific type (extension) recursively down a directory using a batch file
我需要删除dir1和dir2中的所有.jpg和.txt文件(例如)。
我尝试的是:
1 2 | @echo off FOR %%p IN (C:\testFolder D:\testFolder) DO FOR %%t IN (*.jpg *.txt) DO del /s %%p\%%t |
在一些目录中,它起作用;在其他目录中,它不起作用。
例如,这没有做任何事情:
1 2 | @echo off FOR %%p IN (C:\Users\vexe\Pictures\sample) DO FOR %%t IN (*.jpg) DO del /s %%p\%%t |
我在第二个片段中遗漏了什么?为什么不起作用?
您可以将通配符与
@bmyguest问为什么被否决的答案(
运行
在使用第二个命令删除
但是,如果您正在处理某个项目,希望删除
1 2 3 4 5 6 | @echo off REM This short script will only remove dlls from my project... or will it? cd \myProject\dll del /S /Q C:\*.dll |
然后,您将从您的
这里的教训是,如果可以避免这样的命令,就不要直接在驱动器的根目录下(或者在任何其他可能很危险的位置,如
我刚才编写了一个批处理脚本,允许您选择要删除的文件扩展名。该脚本将在其所在的文件夹以及具有该扩展名的任何文件的所有子文件夹中查找并删除它。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | @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 |
希望这对任何想要它的人都有用:)
可以使用此选项删除文件夹和子文件夹中的所有文件:
1 | DEL"C:\Folder\*.*" /S /Q |
或仅用于删除某些文件类型:
1 2 | DEL"C:\Folder\*.mp4" /S /Q DEL"C:\Folder\*.dat" /S /Q |
如果您试图删除c:drive中的某些.extensions,请使用以下命令:
1 | del /s c:\*.blaawbg |
我有个客户感染了加密病毒,我需要找到所有垃圾文件并删除它们。