1

我曾经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!
)
4

2 回答 2

2

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

试试这个

set v_abc=%%a

瞧!

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

echo value of abc: !v_abc !
于 2013-03-22T07:50:08.493 回答
2

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

您可以通过以下任一方式修复它

  1. 更改set v_abc =%%aset v_abc=%%a

    或者

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

简单的。

于 2013-03-22T07:52:15.400 回答