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

Vol*_*lyy 1 batch-file delayedvariableexpansion

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

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

   echo A=%%A
   echo USER=%USER%
)
Run Code Online (Sandbox Code Playgroud)

输出此代码:

A=user1
USER=
Run Code Online (Sandbox Code Playgroud)

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

Aac*_*ini 6

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

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

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

   echo A=%%A
   echo USER=!USER!
)
Run Code Online (Sandbox Code Playgroud)

并在开头包括这一行:

setlocal EnableDelayedExpansion
Run Code Online (Sandbox Code Playgroud)

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