如何将%%参数分配给变量?

时间:2012-03-02 16:00:05

标签: batch-file delayedvariableexpansion

如何将%%参数分配给变量?

FOR /F "tokens=1 delims= " %%A IN (connections.txt) DO (
   set USER=%%A

   echo A=%%A
   echo USER=%USER%
)

此代码的输出:

A=user1
USER=

如何将参数%% A分配给变量USER?

1 个答案:

答案 0 :(得分:6)

参数%% A已正确分配给USER变量,但未正确显示USER值。

要使用在内部修改的变量的当前值,必须使用延迟变量扩展,即通过感叹号以这种方式更改百分比:

FOR /F "tokens=1 delims= " %%A IN (connections.txt) DO (
   set USER=%%A

   echo A=%%A
   echo USER=!USER!
)

并在开头包含此行:

setlocal EnableDelayedExpansion

否则,%USER%的值是变量在进入FOR循环之前的值。