【问题标题】:Copy files without recreating subdirectories复制文件而不重新创建子目录
【发布时间】:2011-01-30 19:44:59
【问题描述】:

我有一个目录,其中包含大约 100 个子文件夹,这些子文件夹中有近 2,000 个文件(最多 4 层)。这些文件是 .txt 或 .log,每个扩展名都有一个唯一的文件名。我需要将文件移动或复制(以更快者为准)到不同文件夹的根目录,而无需像 xcopy 那样重新创建子文件夹结构。这是在 Windows xp 上

提前致谢。

现有:

目录 1\文件夹 1\000111.txt 目录1\文件夹2\000112.txt 目录 1\文件夹 3\000113.log 目录1\文件夹4\目录2\000114.txt 目录1\文件夹4\目录2\000115.txt 目录 1\文件夹 4\目录 2\000116.log 目录 1\文件夹 5\目录 3\000117.log 目录1\文件夹5\目录3\000118.txt 目录1\文件夹5\目录3\目录4\000119.txt 目录1\文件夹5\目录3\目录4\000120.txt 目录 1\文件夹 5\目录 3\目录 4\000120.log 必需:
目录9\000111.txt
目录9\000112.txt
目录 9\000113.log
目录9\000114.txt
目录9\000115.txt
目录 9\000116.log
目录 9\000117.log
目录9\000118.txt
目录9\000119.txt
目录9\000120.txt
目录9\000120.log

【问题讨论】:

  • 你需要喜欢 XCOPY吗?为什么不直接使用 XCOPY?
  • 我刚刚尝试使用 xcopy 但它也复制了目录结构。那不是我想要的。

标签: windows cmd


【解决方案1】:

怎么样:

for /R %f in (*.txt,*.log) do copy %f dir9\%~nf

dir1 作为您的工作目录发出此问题。

阅读 for /? 以了解其工作原理。

当我处理 for 语句时,我倾向于先尝试它们,如下所示:

for /R %f in (*.txt,*.log) do @echo copy %f dir9\%~nf

【讨论】:

  • 我应该用什么替换 "dir1" asl 输入?
  • @Micro 只需将目录更改为您要处理的树的根目录
  • 请回答有关使用for使用for /f 而不是dir 的文件。仅此一项就值得 +1 :-)
  • 如果你想在复制过程中保留文件扩展名,你应该使用: for /R %f in (.txt,.log) do copy %f dir9\%~ nxf
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
相关资源
最近更新 更多