无法将FOR循环的输出分配给批处理文件中的另一个变量

时间:2013-03-22 07:42:33

标签: windows for-loop batch-file

我已使用FOR /F访问批处理文件中“last_bkp_date.txt”文件中的值。

%%a的结果没问题,但我无法为v_abc分配值。

我在set v_abc =循环之前使用过for来特别删除/删除对此变量所做的任何过去的分配。

有人可以帮我这个吗?

@SETLOCAL EnableDelayedExpansion
@echo off

set v_abc =

FOR  /F "tokens=1 usebackq" %%a IN (last_bkp_date.txt) DO (  
  set v_abc =%%a
  echo value of a: %%a
  echo value of abc: !v_abc!
)

2 个答案:

答案 0 :(得分:2)

语法为SET variable=value。您的问题是变量名称和=符号之间的空格。

试试这个

set v_abc=%%a

和voilà!

原因是在Windows环境中变量名称可以包含空格。但不建议这样做,因此作为问题的替代解决方案,您可以通过这种方式访问​​变量,包括空格

echo value of abc: !v_abc !

答案 1 :(得分:2)

在变量名称(set v_abc =%%a)之后添加空格的简单新手错误。

您可以通过

修复它
  1. set v_abc =%%a更改为set v_abc=%%a

  2. echo Value of abc: !v_abc!更改为echo Value of abc: !v_abc !

  3. 简单。