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

批处理for循环统计变量中指定字符串的出现次数

统计批处理变量中指定字符的出现次数

需求:在变量Code=AAABASDG中查找字符串"A",每找到一次将计数加1,最终输出结果应为4(该变量包含4个"A")。

原示例代码的问题

原代码无法实现预期效果,因为for %%i in (%Code%) do会将整个变量值作为单个循环项,而非逐个字符遍历,导致判断条件永远不成立,最终输出0。

@echo off
set /A C=0
set Code=AAABASDG
for %%i in (%Code%) do IF "%%i"=="A" set /A C=%C%+1
echo %C%
pause

正确实现代码

以下是能正确统计字符"A"出现次数的批处理脚本:

@echo off
setlocal enabledelayedexpansion
set /A C=0
set Code=AAABASDG

:: 逐个遍历变量中的每个字符
for /L %%n in (0,1,99) do (
    if "!Code:~%%n,1!"=="" goto :endloop
    if "!Code:~%%n,1!"=="A" set /A C+=1
)

:endloop
echo !C!
pause
endlocal

代码说明

  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环中变量的更新能被实时读取。
  • for /L %%n in (0,1,99):生成从0开始的索引,遍历变量的每个字符位置(99为足够大的上限,覆盖大多数场景)。
  • !Code:~%%n,1!:提取变量Code中第%%n位的单个字符。
  • 当提取的字符为空时,说明已遍历完所有字符,跳转到循环结束标签;如果字符是"A",则计数加1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:01:40