【问题标题】:How to delete multiple files from multiple folders in batch如何批量删除多个文件夹中的多个文件
【发布时间】:2014-07-20 16:44:21
【问题描述】:

我正在尝试制作一个批处理文件,该批处理文件可以将整个文件夹(包括文件和子文件夹)复制到多个子文件夹中的多个子文件夹中。 事实是,我搞砸了命令,最后将所有文件和子文件夹复制到了我想要的位置,但没有复制到文件夹中。

现在我想删除所有这些文件和子文件夹,而不删除每个文件夹中的原始文件。

我直接在命令提示符窗口中尝试了这个命令,但它不起作用,我不知道为什么,因为输入和循环似乎是正确的。

for /d %a in (`E:\Mis documentos\Nueva carpeta\Filosofia\*') do for /d %b in ("%a\*") do for %c in ("*") do del %b\%c

这会返回“系统找不到指定的文件”,但执行的命令是del E:\Mis documentos\Nueva carpeta\Filosofia\Some folder\Another folder\The exact file,我想在该文件夹中删除它。是什么原因造成的?

当我执行相同但回显 %b/%c 时,它会返回我要从文件夹中删除的项目的确切路径。 (请注意,我试图从我想首先复制的文件夹中运行此命令,以便我可以独立恢复每个文件的名称。)

【问题讨论】:

  • del "c:\somefolder\*.txt" "c:\somefolder\*.exe" /s
  • For 批处理文件中的循环在命令提示符下需要 %%A 而不是 %A。
  • 我忘了解释,帖子中的代码是在命令提示符下执行的测试(这就是为什么我每次都写一个sinlge %),但它返回“系统找不到指定文件”,但执行的命令是 del E:\Mis documentos\Nueva Caribbean\Filosofia\Some folder\Another folder\我要在该文件夹中删除的确切文件。我无法理解的是为什么它找不到文件。
  • 您需要用空格引用路径。但是delfor 容易。
  • 非常感谢,我完全错过了!我一定看起来像个白痴!

标签: batch-file


【解决方案1】:

最好的解决方案是使用命令del 和开关/Q(安静)和/S(也在所有子目录中),正如D.Ddgg 已经建议的那样。

del /Q /S "E:\Mis documentos\Nueva carpeta\Filosofia\*.txt" "E:\Mis documentos\Nueva carpeta\Filosofia\*.jpg"

带有space 或其他特殊字符(如&()[]{}^=;!'+,`~)的参数必须用双引号括起来。此特殊字符列表是在命令提示符窗口cmd /? 中运行并查看帮助最后一页的最后一段时输出的。

【讨论】:

    猜你喜欢
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多