【问题标题】:Search multiple files in Windows, copy to new folder在 Windows 中搜索多个文件,复制到新文件夹
【发布时间】:2017-05-31 19:03:03
【问题描述】:

我正在运行 Windows,并且我有大量 .pdf 文件(数千个)都存储在一个大目录中,然后所有这些文件都以各种方式组织到该主目录中的各种子目录中。

例如: K:\OriginalDirectory [main directory] K:\OriginalDirectory\2010 [subdirectory 1] K:\OriginalDirectory\2011 [subdirectory 2] K:\OriginalDirectory\2013 [subdirectory 3]

我的问题:我需要将大约 1900 个这些文件复制并粘贴到一个新目录中。 Windows 的“查找”功能不允许我这样做,因为尝试使用“或”运算符组合 1900 个唯一文件名超出了“查找”的 255 个字符限制。

所以我使用命令行尝试了以下操作(基于另一个 StackOverflow 答案): C:\OriginalDirectory>for %I in (doc1.pdf doc2.pdf doc3.pdf) do copy %I C:\SomeOtherDirectory

这有效,但不搜索子目录。此外,它需要我输入所有 1900 个文件名,这并不理想。

有没有办法让我只使用在我的主目录中搜索所有子目录并且不需要我输入 1900 个文件名的命令行来完成这项任务?

【问题讨论】:

  • 是否要保留目录结构,但在复制时跳过非 PDF 文件?看看robocopy(它是Windows 最新版本附带的工具),它在复制目录树时应用文件名过滤器(/XF/XD)。
  • 不需要保留目录结构——我只需要移动一大组文件,所有文件都随机存储在各个子目录中。此目录/子目录中的所有文件都是 PDF。 Robocopy 看起来不错,但我没有找到不必输入单个文件名的方法(我不需要移动所有文件,只需移动 7000 个左右文件中的 1900 个)。
  • Robocopy 文档:"File 指定要复制的文件。您可以使用通配符(*? "
  • 因此,无论您有什么规则来决定是否应该复制文件,都可以使用通配符来包含,/XF 使用另一个通配符来排除。
  • 唉,目录/子目录中的每个文件(需要移动的和不需要移动的)都这样命名:3445604401216.pdf、3445602510940.pdf、3445603608022.pdf , 等等。决定移动的唯一规则是该文件名是否在我的列表中。

标签: windows


【解决方案1】:

您可以使用批处理脚本来完成这项工作。 发现于:Windows batch copy files from subfolders to one folder

为你调整它应该是这样的:

pushd C:\OriginalDirectory
   for /r %%a in (*.pdf) do (
     COPY "%%a" "C:\SomeOtherDirectory\%%~nxa"
   )
 popd

编辑评论原因

仅复制列表中的那些文件:(再次不确定类型“C:/my...”,因为我目前无法对其进行测试,但应该以这种方式工作)

pushd C:\OriginalDirectory
   for /r %%a in (type "C:/myFileList.txt") do (
     COPY "%%a" "C:\SomeOtherDirectory\%%~nxa"
   )
 popd

【讨论】:

  • 如果我想移动所有 .pdf 文件,这似乎可行,但我只需要移动其中的一组(大约 7000 个文件中的 1900 个)。这些文件——我想要移动的文件和我不想移动的文件——都有相似的名称(344560440216.pdf、3445603604366.pdf 等)。有没有办法将批处理脚本“指向”文件名列表?
  • 您的意思是要编写一个包含大约 1900 个文件名的列表并仅移动列表中的那些文件?因为我猜,当 .pdf 名称与您想要从 7000 移出的 1900 名称不同时,您必须这样做。对吗?
  • 是的:我有一个文本文件,其中列出了需要移动的 pdf 的所有文件名。你是说用我的文件名替换“%%a”吗?抱歉——我只是不清楚(显然)我应该如何做到这一点。
  • 编辑了上面的解决方案
  • 非常感谢您抽出宝贵时间帮助我。非常感谢!
猜你喜欢
  • 2014-08-30
  • 2012-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
相关资源
最近更新 更多