从文本文件设置变量

时间:2014-05-13 04:02:55

标签: batch-file for-loop cmd set

嗨我正在尝试从文本文件中设置变量读取。我正在使用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 

1 个答案:

答案 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条目