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

BAT批处理如何一次性读取输入串逐位提取变量重组指定格式输出

批处理15位字符串自动转换脚本优化

实现效果

无需逐位输入单个字符,一次性输入完整15位字符串后,自动按规则提取字符、拼接固定标识与分隔符输出,匹配示例规则:

  • 输入值:123456789012345
  • 期望输出:xy 1z 32 54 76 98 10 32 54

优化后完整代码

@echo off
chcp 65001 >nul
:reinput
set "full_str="
set /p "full_str=请输入15位完整字符串: "
:: 校验输入长度是否为15位
if not defined full_str echo 输入不能为空,请重新输入&goto reinput
if not "%full_str:~14,1%"=="" (
    if "%full_str:~15,1%"=="" goto parse
)
echo 输入长度不符合要求,请输入正好15位的字符串&goto reinput

:parse
:: 按位提取字符(批处理字符串索引从0开始计数)
set "p1=%full_str:~0,1%"
set "p2=%full_str:~1,1%"
set "p3=%full_str:~2,1%"
set "p4=%full_str:~3,1%"
set "p5=%full_str:~4,1%"
set "p6=%full_str:~5,1%"
set "p7=%full_str:~6,1%"
set "p8=%full_str:~7,1%"
set "p9=%full_str:~8,1%"
set "p10=%full_str:~9,1%"
set "p11=%full_str:~10,1%"
set "p12=%full_str:~11,1%"
set "p13=%full_str:~12,1%"
set "p14=%full_str:~13,1%"
set "p15=%full_str:~14,1%"

:: 按规则拼接输出
echo xy %p1%z %p3%%p2% %p5%%p4% %p7%%p6% %p9%%p8% %p11%%p10% %p13%%p12% %p15%%p14%
pause

代码说明

  • 仅保留1次输入提示,一次性接收完整字符串,省去逐位输入的繁琐操作
  • 内置输入长度校验,输入为空、长度不足15位、超过15位时都会提示重新输入,避免字符截取异常
  • 用批处理原生字符串截取语法逐位拆分字符,不需要额外依赖工具,兼容所有Windows系统默认cmd环境
  • 拼接逻辑和原有脚本完全一致,输出格式不会出现偏差,测试输入123456789012345时可直接得到目标输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:27:17