批处理文件 - 从带有空格的文本文件中读取

时间:2015-03-16 20:07:14

标签: batch-file

我写了一个批处理文件来读取位于特定路径中的文本文件。 for循环从位于文件夹中的文本文件中读取。如果这个相同的路径有空格,那么for循环就无法读取它。即使我用引号包装路径,它仍然无法读取它。路径确实存在,我多次检查,并确认循环仅适用于不包含空格的路径名。

他们做错了什么,或者,它是批量循环的限制吗?

代码:

FOR /F "tokens=* delims=" %%x in (C:\Users\someuser\VirtualBoxLog\log.txt) DO SET read=%%x

如果此路径包含空格,例如C:\Users\someuser\VirtualBox Log\log.txt,则无法从文本文件中读取,即使我将其包装起来并且文件夹VirtualBox Log也存在。

2 个答案:

答案 0 :(得分:0)

您的问题的解决方案是将路径括在引号中:

"C:\Users\someuser\VirtualBox Log\log.txt"

但现在又出现了另一个问题:for将一个字符串字符串解释为字符串,而不是文件名。

要解决此问题,请使用usebackq关键字:

FOR /F "usebackq tokens=* delims=" %%x in ("C:\Users\someuser\VirtualBox Log\log.txt") DO SET read=%%x

答案 1 :(得分:0)

我想使用一个CMD命令从TXT读取文件名和路径,并将它们复制到一个新文件夹。

MD New Folder <-- Create New Folder
for /F "delims=" %%f IN (list.txt) DO copy "%%f" New Folder <--- copy files from TXT to a new folder

list.txt包含此字符串。

c:\pictures 2002\rich\new album\hi_all.jpg