批处理文件:For循环:打开文件而不是读取它。为什么?

时间:2014-09-14 20:08:56

标签: batch-file

下面的代码适用于仅指定文件名(即links.txt)时没有引号(可能与引号一起使用,但我还没有对其进行测试。)。

当我用文件名替换整个文件路径(也包括空格)时,批处理文件不会按照应有的方式工作。而是打开文本文件,当我关闭文本文件时,cmd框然后显示Echo关闭的消息。它就像在循环的第一个实例中打开文件一样。为什么会这样?

@echo off

SET var=
SETLOCAL EnableDelayedExpansion
FOR /f %%i in ('"Z:\My Docs\links.txt"') DO (
   SET var=!var!%%i 
)
echo !var!


ENDLOCAL



pause

1 个答案:

答案 0 :(得分:0)

for /f "usebackq" %%i in ("Z:\My Docs\links.txt") do ...

如果在文件名周围使用单引号,for命令解释您要执行它,但只使用双引号,则将其视为文字字符串。

来自for的{​​{1}}帮助(请参阅usebackq):for /?