将文件列表复制到特定文件夹位置

Copy list of files to specific folder locations

我在一个文件夹中有大约 10,000 个文件。我想根据文本文件将特定文件复制到特定文件夹。是否可以使用分号分隔的文本文件,其中每行的第一部分是源路径和文件名,第二部分是目标路径?

C:\Files\File1.txt;C:\Folder1
C:\Files\File2.txt;C:\Folder2
C:\Files\File3.txt;C:\FolderN\

代码会是什么样子?有没有更好的方法达到同样的效果?

我有一个现有的 bat 文件,我用它来将文本文件中列出的所有文件复制到一个特定的文件夹位置(如下),但在这种情况下,我需要将不同的文件发送到不同的文件夹,我不想这样做运行我的bat文件50次,每次都改变bat文件中的目标路径...

for /f %%f in (%1) do ( 复制 %%f G:\Files\PutFilesHere )

看起来像这样:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=; tokens=1,2" %%I in (`type filelist.txt`) do (
    copy /y %%I %%J
)
goto :eof

for 循环被告知使用命令的结果(usebackq,对于命令 type filelist.txt),在每个 ; 处拆分,并取元素 #1 和 #2。拳头被命名为变量(%%I,注意,区分大小写),第二个是下一个字母,所以%%J。 然后,复制是微不足道的。

for /f "tokens=1,2delims=;" %%f in (%1) do ( copy "%%f" "%%g" )

请参阅文档提示中的for /?