批量删除子文件夹中的文件,文件名之间有空格

时间:2018-08-09 13:33:32

标签: batch-file for-loop cmd

我有一个目录,其中包含约100个子目录,其中包括图像。然后,我有了需要从这些文件夹中删除的图像的.txt列表。 由于数量众多,因此我正在寻找一种使用bat文件批量删除这些文件的方法。 但是问题是我的文件位于子文件夹和子文件夹中,并且文件名也包含空格。

示例:

MainFolder/Subfolder One/Image Sunshine.jpg<br>
MainFolder/Subfolder One/Image Cloudy.jpg

我还尝试了 del 的多个选项,也将txt文件中的所有路径都放在了双引号内。但是没有什么可以删除它们。 有什么想法如何从所有子文件夹中仅删除选定的? 重命名或删除空格不是一种选择,因为我必须以与当前相同的格式重新上传其余图像。

1 个答案:

答案 0 :(得分:0)

一种简单的方法是使用FOR语句以字符串形式读取文本文档的每一行。

要删除文件,我们可以使用DEL命令和/s开关来搜索所有子目录。

  • / P -在删除每个文件之前提示确认。
  • / F -强制删除只读文件。
  • / S -从所有子目录中删除指定的文件。
  • / Q -安静模式,不要问是否可以在全局通配符上删除
  • / A -根据属性选择要删除的文件

以下脚本将从目录树(包括执行目录)中所有子目录的 list.txt 文件中删除所有file.extension。如果它们的名称中带有引号"%%G"的空格,也会删除它们。

批处理文件:

for /f "delims== tokens=1,2" %%G in (list.txt) do (del /s /q /f "%%G")

命令提示符:(确保CD到主目录!)

for /f "delims== tokens=1,2" %G in (list.txt) do (del /s /q /f "%G")