You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理文件中提取Score=后的纯数字问题求助

修正Batch脚本提取Score后的纯数字

原脚本提取score=后的内容时,输出包含了后续的analyzer文本,原因是仅用=作为分隔符,导致score=后的所有内容(直到下一个=)被一并提取。以下是两种修正方案:

方案1:扩展分隔符包含空格

通过将分隔符设置为=和空格,直接提取独立的数字token:

@echo off
setlocal
for /F "tokens=3 delims== " %%a in ('findstr /I "ABCD.exe score=" 2023-02-22.log') do set "scanScore=%%a"
echo Score is: %scanScore%
endlocal

说明

以=和空格作为分隔符时,日志行被拆分为如下独立token:

  1. ScanFolder\ABCD.exe
  2. score
  3. 755
  4. analyzer
    ...
    指定tokens=3即可直接获取目标数字。

方案2:嵌套循环二次分割

如果担心分隔符变化,可先提取score=后的全部内容,再按空格分割取第一个token:

@echo off
setlocal enabledelayedexpansion
for /F "tokens=2 delims==" %%a in ('findstr /I "ABCD.exe score=" 2023-02-22.log') do (
    for /F "tokens=1" %%b in ("%%a") do set "scanScore=%%b"
)
echo Score is: !scanScore!
endlocal

说明

  • 外层循环提取score=后的内容(即755 analyzer=Cloud...)
  • 内层循环将该内容按空格分割,取第一个token得到纯数字755
  • 启用enabledelayedexpansion确保循环内赋值的变量能正确输出

内容的提问来源于stack exchange,提问作者Anand Tewari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:15:41