我在c:\Program Files
目录中有一个名为tmp.txt
对于tmp.txt中的每一行,我想执行一个命令。
我正在尝试使用命令提示符for
循环,但它无法找到tmp.txt。请注意,我要从c:\Program Files
目录中运行此命令。
以下是我的尝试方式:
C:\>for /F %i in ("c:\Program Files\tmp.txt") do echo "%i"
输出是:
C:\>echo "c:\Program"
"c:\Program"
这意味着for
正在考虑将"c:\Program"
作为参数并将其传递给do
如果我将文件放入c:\
,并运行for
循环as-
C:\>for /F %i in (c:\tmp.txt) do echo "%i"
它运作得很好
所以我的问题是 - 如何将完整路径传递给for
循环,以便for
将其视为文件
答案 0 :(得分:2)
使用usebackq
选项for /f
:
for /f "usebackq" %i in (...)
这会改变各种引号字符的语义,如帮助所示:
usebackq - specifies that the new semantics are in force,
where a back quoted string is executed as a
command and a single quoted string is a
literal string command and allows the use of
double quotes to quote file names in
file-set.