无法将FOR循环的输出分配给batch file中的另一个variables

我已经使用FOR /F来访问batch file中的文件“last_bkp_date.txt”中的值。

%%a的结果可以,但是我无法将值v_abc

我在for循环之前使用了set v_abc =来特别删除/删除对这个variables进行的任何过去的赋值。

有人可以帮我吗?

 @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! ) 

简单的菜鸟错误在变量名之后添加空格( 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 !

简单。

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

试试这个

 set v_abc=%%a 

瞧!

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

 echo value of abc: !v_abc !