Windows CMD Batch中如何批量提取每4位数字到变量
Windows CMD批处理:48位数字串按4位拆分到递增变量中
假设你的48位数字字符串已经存在变量input里,下面的代码可以直接实现按每4位拆分,存入var1到var12:
@echo off setlocal enabledelayedexpansion :: 示例48位数字串,实际使用时替换成你的变量 set "input=123456789012345678901234567890123456789012345678" set "i=1" :split_loop if "!input!"=="" goto end_loop :: 截取前4位存入对应变量 set "var!i!=!input:~0,4!" :: 去掉已截取的前4位,更新input set "input=!input:~4!" :: 计数器递增 set /a i+=1 goto split_loop :end_loop :: 测试输出所有变量 for /l %%n in (1,1,12) do echo var%%n=!var%%n! endlocal
关键说明:
setlocal enabledelayedexpansion:必须开启延迟扩展,否则循环里的动态变量赋值(比如var!i!)无法正常生效。!input:~0,4!:截取字符串input的前4个字符;!input:~4!:截取从第5位开始到结尾的剩余字符串。set /a i+=1:计数器自增,实现变量名从var1到var12的递增命名。- 最后的
for /l循环可以批量输出所有拆分后的变量,方便验证结果。
如果你的原始变量不是input,直接替换代码里的input为你的变量名即可,确保它是48位纯数字(若长度不固定,可调整循环终止条件,但这里刚好48位,循环12次自动结束)。
内容的提问来源于stack exchange,提问作者EnderCal1012
相关产品推荐
相关产品推荐

