Batch file 无法在批处理脚本中正确设置变量

Batch file 无法在批处理脚本中正确设置变量,batch-file,Batch File,我正在使用批处理从xml文件中读取一个值, 值类似于Age=“18” 提取值时,我不需要双引号 for /f "tokens=2 delims= " %%b in ('type <file_name> ^| FIND "info" ) do ( echo %%b set string =%%b for/f“tokens=2 delims=“%%b in('type^ | FIND“info”)do( 回声%%b 设置字符串=%%b string=Age=“18”(此处获取错误)

我正在使用批处理从xml文件中读取一个值, 值类似于Age=“18” 提取值时,我不需要双引号

for /f "tokens=2 delims= " %%b in ('type <file_name> ^| FIND "info" ) do (
echo %%b
set string =%%b
for/f“tokens=2 delims=“%%b in('type^ | FIND“info”)do(
回声%%b
设置字符串=%%b
string=Age=“18”(此处获取错误)

在信息标签中

我只需要将值18存储在变量中


需要帮助

您可能希望使用
作为分隔符的
4
th令牌,而不是选择
2
nd令牌和
作为分隔符:


@For/F Tokens^=4^Delims^=^“%%G In('^”“%\uu AppDir%find.exe)/I”而不是选择
2
nd标记和
作为分隔符,您可能希望
4
第th标记使用
作为分隔符:


@For/F Tokens^=4^Delims^=^“%%G In('^”“%\uu AppDir%find.exe)/I”此任务可通过以下方式完成:

for /F "tokens=5 delims==> " %%I in ('%SystemRoot%\System32\findstr.exe /R /C:"<info .* Age=\"[0123456789][0123456789]*\"" "XmlFile.xml"') do echo %%~I& set "string=%%~I"
FINDSTR对包含
和空格作为字符串分隔符的行运行区分大小写的正则表达式搜索,因为
delims==>
。第五个子字符串是属性
Age
的值,该属性用双引号括起来,因为
而被分配给指定的循环变量
I
>令牌=5
。由于使用修饰符
%~I
,双引号被删除

要了解所使用的命令及其工作方式,请打开一个窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面

  • echo/?
  • findstr/?
  • 获取/?
  • 设置/?

此任务可通过以下方式完成:

for /F "tokens=5 delims==> " %%I in ('%SystemRoot%\System32\findstr.exe /R /C:"<info .* Age=\"[0123456789][0123456789]*\"" "XmlFile.xml"') do echo %%~I& set "string=%%~I"
FINDSTR对包含
和空格作为字符串分隔符的行运行区分大小写的正则表达式搜索,因为
delims==>
。第五个子字符串是属性
Age
的值,该属性用双引号括起来,因为
而被分配给指定的循环变量
I
>令牌=5
。由于使用修饰符
%~I
,双引号被删除

要了解所使用的命令及其工作方式,请打开一个窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面

  • echo/?
  • findstr/?
  • 获取/?
  • 设置/?

不要在等号周围添加空格。
set string=%%b
我建议您使用可以使用本机方法读写xml的脚本语言。不要在等号周围添加空格。
set string=%%b
我建议您使用可以使用本机方法读写xml的脚本语言。谢谢您的主意.谢谢,我有个主意。