【问题标题】:Copy files matching the names in a list of paths and paste them in one new folder?复制与路径列表中名称匹配的文件并将它们粘贴到一个新文件夹中?
【发布时间】:2018-08-16 15:23:23
【问题描述】:

我在 Windows 7 机器上工作,我正在尝试获取与文件路径列表中名称匹配的所有文件(我将列表保存为 csv、rda,并且可以制作一个 txt 文件如果需要的话)。即:列表看起来像:

Y:/iglgrelkgjkrle/originals/jsfhdjk.xls
Y:/iglgrelkgjkrddsle/ffhej/originals/jsfhdjk.xlsx
Y:/kssrldsse/ffhej/originals/jsfhdjk.xlt
Y:/blahblah/blah/blahhh/blahhhhhh/originals/blahahaha.pdf

... ...

基本上我希望将此列表中的所有这些文件复制到不同位置的新文件夹中。谢谢!

【问题讨论】:

    标签: file command-line path directory


    【解决方案1】:

    几乎任何问题都可以通过 Windows 命令处理器中的FOR 语句来解决。使用for /f,我们可以在文本文档中搜索列表,并针对指定的每个项目(本例;位置)运行命令将其复制到新位置。

    对于复制文件,xcopy 将非常方便,因为它有许多我们可以使用的复制选项开关,例如 /i /z /y

    • /I - 如果有疑问,请始终假定目标是文件夹
    • /Z - 以可重启模式复制文件。如果副本在中途中断, 如果可能,它将重新启动。
    • /Y - 禁止提示以确认覆盖文件。 (反向使用/-Y

    以下命令以C:\list.txt为例。您可以在此处指定列表文件的位置。这可以支持多种文件格式,包括html。尝试您的扩展程序并没有什么坏处。

    对于输出复制文件的位置 - C:\CopyFolder 是您希望发送它们的文件夹位置的示例。您也可以通过\\server\folder\ 将它们发送到本地服务器。

    从命令行:

    for /f "delims=" %i in (C:\list.txt) do (xcopy "%i" "C:\CopyFolder" /i /z /y)
    

    来自批处理文件:

    for /f "delims=" %%i in (C:\list.txt) do (xcopy "%%i" "C:\CopyFolder" /i /z /y)
    

    如果这解决了您的问题,请不要忘记将此回复标记为已解决。我很乐意进一步解释任何问题!

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多