【问题标题】:Is the a way to create a batch file to remove folders but keep all the files?是一种创建批处理文件以删除文件夹但保留所有文件的方法吗?
【发布时间】:2011-11-11 08:19:09
【问题描述】:

我一直在尝试创建一个批处理文件,将计算机的所有驱动程序和其他元素擦除到 USB 闪存驱动器。批处理文件可以正常工作,但它会将数据收集在大量带有子目录的文件夹中,这使得数据毫无用处。

我一直在尝试找到一种方法来折叠或删除文件夹并将所有文件放入一个文件夹中。

我发现这个命令:

for /r "source" %f in (*) do @copy "%f" "target"

有效,但由于某种原因无法在任何批处理文件中运行。

有人知道这样做吗?将文件移动到一个文件夹或复制然后删除。

提前致谢!!!

【问题讨论】:

  • 您将如何处理名称相似的文件?
  • 没有任何线索,批处理文件对我来说相当新,所以我一步一步尝试,有什么想法吗?

标签: file batch-file directory


【解决方案1】:

如果您在批处理文件中使用% 变量,则需要双%

for /r "source" %%f in (*) do @copy "%%f" "target"

但是当您尝试将这两个文件 dir1/file.txtdir2\file.txt 放在同一个目录中时,您可能需要考虑它们会发生什么。

对了,你怎么没想过用xcopy

【讨论】:

  • 我试过了,但它仍然不起作用,我正在尝试 /r "F:\Scrub\32bit\First" %%f in (*) do @copy "%%f" "F: \Scrub\32bit\Second" 。我打算找一个地方来附加它们(file.txt 和 file (1).txt)。老实说,我没有想到,它怎么能做到这一点?
  • 最好使用 copy "%%~f" 而不是 "%%f",因为文件名中有空格也是安全的
  • 所以你会建议使用 copy /r "F:\Scrub\32bit\First" %%f in (*) do @copy "%%~f" "F:\Scrub\32bit\第二”我已经尝试过了,但它不会在批处理文件中启动。我错过了什么!?!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 2020-04-16
相关资源
最近更新 更多