嗨我正在尝试从文本文件中设置变量读取。我正在使用FOR循环,我可以从文本中读取每一行但是当我尝试使用SET命令时,我无法将其保存到名为myvar的变量中。我究竟做错了什么。有任何想法吗: 这是我的代码:
@echo off
FOR /F "usebackq tokens=*" %%a IN (c:\users\victor\desktop\v1.txt) DO (
echo:%%a >> result.txt
set myvar=%%a
echo:%myvar%
)
@PAUSE
答案 0 :(得分:1)
在块语句(a parenthesised series of statements)
中,解析整个块并执行然后。块中的任何%var%
将在解析块时被该变量的值替换 - 在块执行之前 - 同样的事情适用于FOR ... DO (block)
。< / p>
因此,IF (something) else (somethingelse)
将在遇到%variables%
时使用IF
的值执行。
解决此问题的两种常见方法是1)使用setlocal enabledelayedexpansion
并使用!var!
代替%var%
来访问已更改的var
或2}值以进行调用一个子程序,用于使用更改的值执行进一步处理。
查看关于“delayedexpansion”的许多,很多很多SO条目