首页 > 解决方案 > 如何将 findstr 结果解析为 cmd 变量以允许剥离找到的行

问题描述

我正在尝试从 XML 文件中提取版本号。XML 文件包含以下字符串:

<!-- Full version --> <key id="about_fullVersion">10.1.5</key>

使用:

FINDstr /I "about_fullVersion" C:\PLM\Teamcenter10\install\versionlocal.xml >>%logfile%

我可以提取完整的行并将其发送到日志文件。如何从此查找中删除版本号,以便仅将版本号发送到日志文件?

我也试过

FOR /f "tokens=*" %%a in ('FINDstr /I "about_fullVersion" C:\PLM\Teamcenter10\install\versionlocal.xml') do (set var=%%a)
echo.%var% >>%logfile%

但它不会解析为变量。

标签: batch-filecmd

解决方案


set VAR=&
for /f "usebackq tokens=2 delims=<>" %%v in (`
  findstr /i "about_fullVersion" C:\PLM\Teamcenter10\install\versionlocal.xml
`) do if not defined VAR set VAR=%%v
echo VAR="%VAR%"

推荐阅读