Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 初学者问题(格式化,“此时文件路径意外”)_File_Batch File - Fatal编程技术网

File 初学者问题(格式化,“此时文件路径意外”)

File 初学者问题(格式化,“此时文件路径意外”),file,batch-file,File,Batch File,我是批处理文件的新手,我只需要做一件非常简单的事情。 我想要一个批处理文件来获取一个文本文件,它是一个文件路径列表-- Filelist.txt 开始文件>> O:\X\Y\Z\Board BOM Rev 4.xls>>文件 O:\X\Y\U>>整个文件路径

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

Filelist.txt

开始文件>>

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

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

<结束文件

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

@回音

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

设置目标=%cd%

对于“输入”中的/f%%i,请执行xcopy“%%i”%dest%\/S

去做我需要做的,但是我得到了前面提到的错误。我在批处理文件方面做得很少,因此,如果您能提供更正和解释,我将不胜感激!
谢谢

首先,要使用变量“input”,请编写
%input%

第二,要获得的正确格式,您必须在其周围放置一些偏执的论点:

  for /f %%i in ("%input%") do xcopy "%%i" %dest%\ /S
第一。(输入)

在第一个
集合中
的值被双引号引错,该格式适用于特殊情况,而不是这次

第二。(目的地)

您需要确保对每个
“variable=value”
双引号(至少当它们是字符串变量且can包含空格时)

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

三,。(适用于)

for
中的
dest
变量也有同样的引号问题,而且您输入的
输入变量也不正确,可以通过使用agroupation操作符
()
来改进
for
的语法,以防止将来出现错误

代码如下:

@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
)
请原谅我的英语