/ f无法读取文本文件列表

时间:2019-06-01 07:42:08

标签: batch-file

我似乎无法让我的批处理文件仅复制.txt文件中列出的文件。

在源文件夹中有三个PDF文件。 它们是apple.pdf,bat.pdf和cow.pdf。

文本文件是两行,第一行包含bat.pdf,第二行包含cow.pdf。没有标点符号,空格或其他任何东西。

批处理,列表和两个文件夹都在我的桌面上。

@echo off
set src=C:\Users\weasel\Desktop\source
set dest=C:\Users\weasel\Desktop\dest
set list=C:\Users\weasel\Desktop\animallist.txt
for /f %%F in (%list%) do robocopy "%src%" "%dest%" *.pdf /R:1

我只希望复制列表中的动物,但是代码只是复制它可以找到的所有.pdf文件,就好像只有robocopy在那里一样。我最终在目标文件夹中放入了苹果,蝙蝠和牛。

我似乎搞砸了“(%list%)中的/ f %% F”部分,但是我真的不知道该编码,也找不到任何足以使我失望的在线内容

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

您尚未在列表中包含该元变量。 *.pdf的意思是“任何扩展名为.pdf的文件。”

请改用%%F*.pdf-如果文件是%%F.pdf,而您只想要该文件,则可以尝试jaguar.pdf

也请注意

使用语法SET "var=value"(值可能为空)来确保分配的值中不包括任何杂散的尾随空格。

使用for /f "usebackq" %%F in ("%list%")允许处理包含空格的文件名

使用for /f "delims=" %%F in (%list%)允许将包含空格的数据行分配给%%F

使用for /f "usebackqdelims=" %%F in ("%list%")将两者结合起来