Windows下如何通过bat脚本提取flutter命令输出的engineRevision值
用Bat脚本提取Flutter engineRevision到变量
以下是可行的实现脚本,直接复制到.bat文件中即可:
@echo off setlocal enabledelayedexpansion :: 执行flutter命令并过滤出engineRevision所在行 for /f "delims=" %%a in ('flutter --version --machine ^| findstr "engineRevision"') do ( set "line=%%a" ) :: 从行中提取engineRevision的值,去掉引号和多余字符 set "engine_revision=!line:*"engineRevision": "=!" set "engine_revision=!engine_revision:~0,-2!" :: 输出结果,也可以直接使用变量%engine_revision% echo Engine Revision: %engine_revision% endlocal
代码说明:
setlocal enabledelayedexpansion:启用延迟变量扩展,方便在for循环内修改和读取变量findstr "engineRevision":过滤出包含目标字段的行,输出格式类似"engineRevision": "abc123def",- 第一行变量替换
!line:*"engineRevision": "=!":删除行开头到"engineRevision": "的部分,剩余内容为abc123def", - 第二行
!engine_revision:~0,-2!:去掉最后两个字符(",),得到纯净的哈希值
如果想简化逻辑,也可以把提取步骤合并到for循环中:
@echo off setlocal enabledelayedexpansion for /f "tokens=2 delims=:, " %%a in ('flutter --version --machine ^| findstr "engineRevision"') do ( set "engine_revision=%%~a" ) echo Engine Revision: %engine_revision% endlocal
补充说明:
tokens=2 delims=:,:以:、,、空格为分隔符,提取第二部分内容(带引号的哈希值)%%~a:自动去掉变量%%a的引号,直接得到纯净的字符串
内容的提问来源于stack exchange,提问作者Franklin'j Gil'z
相关产品推荐
相关产品推荐

