【发布时间】:2016-01-18 21:11:51
【问题描述】:
我正在尝试创建一个批处理文件,该文件将搜索 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 文件,以便获取名称以使事情更简单。
【问题讨论】:
-
del /s /q 54326*.*有什么问题? -
使用通配符的完全递归删除似乎有点冒险。我建议在运行删除之前使用
dir /s 54326*.* > List_54326.txt校对将删除的内容。 -
如果您有一个文本文件形式的产品编号列表(每行一个项目),您可以这样做:
for /F "usebackq eol=| delims=" %%F in ("\path\to\listfile.txt") do del /S /Q "%%~F*.*"
标签: batch-file command filenames delete-file partial