0

我是批处理文件的新手,我只需要完成一件非常简单的事情。我想要一个批处理文件来获取一个文本文件,它是一个文件路径列表——

文件列表.txt

开始文件>>

O:\X\Y\Z\Board BOM Rev 4.xls >>文件

O:\X\Y\U >>整个文件路径

< 结束文件

然后将文件(不是文件名,以澄清)复制到给定位置。假设批处理文件位于 O:\X\Y\Z 中(文本文件也是如此),我想将所有这些文件复制到该文件夹​​中。我曾尝试使用此代码

@echo 关闭

设置输入="O:\X\Y\Z\Filelist.txt"

设置目标=%cd%

for /f %%i in "input" do xcopy "%%i" %dest%\ /S

做我需要做的事情,但我收到上述错误。我对批处理文件所做的很少,因此非常感谢您提供解释的更正!谢谢!

4

2 回答 2

0

首先,使用你的变量“输入”写%input%

其次,对于正确的格式,for您必须在其周围加上括号:

  for /f %%i in ("%input%") do xcopy "%%i" %dest%\ /S
于 2013-10-17T16:39:24.577 回答
0

第一个。(输入)

在第一个set你有双引号错误的值,格式化是针对特殊情况的,而不是这次。

第二。(目的地)

您需要确保对每个都进行双引号"variable=value"(至少当它们是字符串变量并且何时可以包含空格时)

但无论如何,您可以稍微简化代码以不依赖于该dest变量,

第三。(为了)

里面的dest变量for有同样的引用问题,你也输入了错误的input变量,并且for可以通过使用 agroupation operator 对命令进行分组来改进语法以防止将来出现错误()

这是代码:

@echo off

set "input=O:\X\Y\Z\Filelist.txt"

REM set "dest=%cd%"

for /f "Usebackq Delims=" %%i in ("%input%") do (
    xcopy "%%i" ".\" /S
)

PS:原谅我的英语。

于 2013-10-17T16:58:46.533 回答