我写了一个批处理文件来读取位于特定路径中的文本文件。 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也存在。
答案 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