下面的代码适用于仅指定文件名(即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
答案 0 :(得分:0)
for /f "usebackq" %%i in ("Z:\My Docs\links.txt") do ...
如果在文件名周围使用单引号,for
命令解释您要执行它,但只使用双引号,则将其视为文字字符串。
来自for
的{{1}}帮助(请参阅usebackq
):for /?