【发布时间】: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\我要在该文件夹中删除的确切文件。我无法理解的是为什么它找不到文件。
-
您需要用空格引用路径。但是
del比for容易。 -
非常感谢,我完全错过了!我一定看起来像个白痴!
标签: batch-file