我正在尝试从下面的文件中打印行for循环:
SET my-file="C:\tmp\xxx.txt"
@echo off
for /f "tokens=*" %%a in (%my-file%) do (
echo line=%%a
)
其中: C:\ tmp \ xxx.txt包含:
a
b
c
d
但%my-file%未展开。如何在for循环中使用变量?
答案 0 :(得分:1)
通过在路径周围加上引号,变量被视为字符串,而不是路径。因此%my-file%
将包含文件的名称,而不是内容。
您可以使用不带引号的相同代码(如果路径允许),或使用type来读取文件内容:
SET my-file="C:\tmp\xxx.txt"
@echo off
for /f "tokens=*" %%a in ('type %my-file%') do (
echo line=%%a
)
答案 1 :(得分:0)
您的代码有效。如果你有问题,请删除回声 - 这表明它正在工作。
这是你的计划本身。
for /f "tokens=*" %%a in ("C:\tmp\xxx.txt") do echo line=%%a
它应该打印,因为有人把它放在引号中, C:\ tmp \ xxx.txt 作为引号意味着字符串是内容。没有单引号或双引号是文件名。单引号是一个命令。
如果您需要引号,可以使用UseBackQ选项来移动单/双/无引号含义。
请参阅For /?
你的大部分批次都是伏都教。
额外不需要的括号并将文字粘贴到变量中。