批处理命令检查部分文件名然后删除

时间:2016-01-18 21:11:51

标签: batch-file command filenames delete-file partial

我正在尝试创建一个批处理文件,该文件将搜索3.5 TB分区并删除部分匹配文件名的所有文件。

我们的文件结构设置为5位数的项​​目编号,然后在扩展名之前可能是非常随机的后缀。例如:

54326.jpg
54326 5x6.jpg
54326 (OLD ART).jpg

这是通过无休止地忽视对命名约定的遵守而发生的,现在我们即将清除分配随机数据的系统。为了使问题更难解决,它分散在4个驱动器和大约300,000个文件夹之间。

我能够从其他论坛中找到此代码,但不是将其移动到另一个文件夹,而只是想使用项目编号删除所有实例。

for /r %%x in (54326*.*) do move "%%x" "DESTINATION"

我需要使用硬盘驱动器上所有文件夹中的5位部分名称删除所有文件(各种扩展名)的代码。

我正在使用excel将代码组合在一起,因为这将对大约25,000个产品编号进行分组。我将获得一个要删除的产品编号列表。如果代码可以索引.txt文件以获取名称以使事情变得更简单,则可以将此列表转换为txt文件。

1 个答案:

答案 0 :(得分:2)

dir "your location"
del /s 54326*.*

这将删除以示例中的54326开头的文件并保留文件夹,但也会在子文件夹中删除。这里有几个选项:

  /P  Give a Yes/No Prompt before deleting. 
  /F  Ignore read-only setting and delete anyway (FORCE) 
  /S  Delete from all Subfolders (DELTREE)
  /Q  Quiet mode, do not give a Yes/No Prompt before deleting.

如果您的.txt文件包含要删除的完整文件列表,则可以执行以下操作

for /f "delims=" %%f in (your_text_file.txt) do del /s "%%f"