batch-file - 如何将 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%
但它不会解析为变量。
解决方案
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%"
推荐阅读
- java - 在 Java 中执行 /usr/bin/env bash -c "command"
- android - 启动特定的 Flutter 屏幕
- node.js - Docker - 撰写我无法创建 postgress 服务器
- php - Phalcon 3.4: Inject a component in a controller action without using dispatcher events
- postgresql - 如何配置从 Vanilla Postgresql 9.6 DB 到 AWS RDS Postgresql 的流复制
- android - 实时数据中的两个对象相互引用
- java - 如何以正确的方式制作高负载 Java 应用程序?
- python - cv2.imwrite 没有写入正确的像素值
- c++ - 为什么擦除其他字符时最后一个字符会加倍,如何防止?
- python - 使用 Pipenv 搜索 Facebook 广告的 Python 脚本