【发布时间】:2014-08-23 22:42:00
【问题描述】:
我有一个包含文件名的文本文件,需要将文本文件中列出的文件复制到另一个文件夹。
只有一个问题是文件名在文本文件的末尾没有.rar。
我正在寻找一个可以读取文本文件并将文本文件中列出的所有.rar 文件复制到另一个文件夹的批处理文件。
【问题讨论】:
标签: batch-file copy
我有一个包含文件名的文本文件,需要将文本文件中列出的文件复制到另一个文件夹。
只有一个问题是文件名在文本文件的末尾没有.rar。
我正在寻找一个可以读取文本文件并将文本文件中列出的所有.rar 文件复制到另一个文件夹的批处理文件。
【问题讨论】:
标签: batch-file copy
假设你的文本文件看起来像这样并且被称为files.txt
file1
file2
file3
你文件夹中的文件分别命名为file1.rar、file2.rar和file3.rar,下面的命令行可以实现你想要的:
for /f "delims=" %f in (files.txt) do copy "%f.rar" "c:\some\other\folder"
使用for /? 详细说明可用选项及其用法:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
file-set 是一个或多个文件名。每个文件都打开,读取 并在处理文件集中的下一个文件之前进行处理。 处理包括读取文件,将其分解为 单独的文本行,然后将每一行解析为零或 更多代币。然后使用 for 循环体调用 变量值设置为找到的令牌字符串。默认情况下,/F 从每个文件的每一行传递第一个空格分隔的标记。 空白行被跳过。
我使用delims 选项来确保读取整行,包括所有空格。
delims=xxx - 指定分隔符集。这将替换默认分隔符集的空格和制表符。
在此解决方案中,为文本文件中的每一行调用复制命令,从而可以修复缺少的扩展名并将其复制到新位置。
【讨论】: