【问题标题】:Batch file to copy files into one folder批处理文件将文件复制到一个文件夹中
【发布时间】:2021-10-10 22:19:08
【问题描述】:

我正在尝试运行 bat 来复制 list.txt 中的所有文件。到目标文件夹,而不复制文件所在的文件夹,我似乎无法让它正常运行。

@ECHO OFF

CHCP 65001 > NUL

FOR /F "usebackq delims=" %%I IN ("C:\Users\Admin\Desktop\Test Copy batch\List.txt") DO (
    xcopy /S "C:\Users\Admin\Desktop\Test Copy batch\Source\%%I" "C:\Users\Admin\Desktop\Test Copy batch\Destination\%%I*"
)

pause

它正在读取 List.txt 文件以获取文件名列表。

进入源文件夹并在所有子目录中搜索这些名称。

复制它们并将它们粘贴到目标文件夹中。

但我希望复制的文件位于一个单独的文件夹中。

【问题讨论】:

    标签: windows batch-file cmd copy xcopy


    【解决方案1】:

    让另一个for /Fwhere一起循环获取每个源文件并使用copy将其复制到平面目录结构中:

    @echo off
    for /F usebackq^ delims^=^ eol^= %%I in ("C:\Users\Admin\Desktop\Test Copy batch\List.txt") do (
        for /F "delims= eol=|" %%S in ('set "PATHEXT=" ^& 2^> nul where /R "C:\Users\Admin\Desktop\Test Copy batch\Source" "%%I"') do (
            copy "%%~S" "C:\Users\Admin\Desktop\Test Copy batch\Destination\%%~nxS"
        )
    )
    

    PATHEXT 变量在运行 where 命令之前被临时清除,因为它会考虑它,因此可能会额外返回不需要的文件。

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 2015-07-31
      • 1970-01-01
      相关资源
      最近更新 更多