Batch file 如何根据cmd中的另一个变量从字符串变量回显单个数字
我想从分配给变量的字符串中回显单个数字,但回显数字的位置将由另一个变量确定。Batch file 如何根据cmd中的另一个变量从字符串变量回显单个数字,batch-file,cmd,Batch File,Cmd,我想从分配给变量的字符串中回显单个数字,但回显数字的位置将由另一个变量确定。 比如: set a=ABCDEF set b=3 echo %a:~%b%,1% 如果您想回显ABCDEF字符串中的第三个数字,则与以下内容相同: echo %a:~3,1% 我尝试这样做的原因是,用户会多次以不同的值提示b变量。您需要启用delayedexpansion 请参见cmd控制台中的set/?和setlocal/? @echo off setlocal enabledelayedexpansion se
比如:
set a=ABCDEF
set b=3
echo %a:~%b%,1%
如果您想回显ABCDEF
字符串中的第三个数字,则与以下内容相同:
echo %a:~3,1%
我尝试这样做的原因是,用户会多次以不同的值提示b变量。您需要
启用delayedexpansion
请参见cmd控制台中的set/?
和setlocal/?
@echo off
setlocal enabledelayedexpansion
set a=ABCDEF
set b=3
echo !a:~%b%,1!
另外,我们从0开始计数,因此
b=3
将导致echo
ingD
一个示例显示了这两种方法:
@Echo关闭
SetLocal DisableDelayedExpansion
设置“str=VALUE”
回显您的字符串是%str%
Choice/C 12345/M“选择位置数字”
设置/A int=%ERRORLEVEL%-1
调用回显您的位置数字与字符%%str:~%int%,1%%匹配
超时2/NoBreak>Nul
Choice/C 12345/M“选择位置数字”
设置/A int=%ERRORLEVEL%-1
SetLocal EnableDelayedExpansion
回显您的位置数字与字符匹配!str:~%int%,1!
端部
超时-1
这是“动态子字符串”。请查看“确定”。请下次更好地编辑您的文章,使用编辑器上的按钮。例如,{}
按钮可以轻松格式化代码块。您的语句绝对不正确。如果要回显第三位数字,请使用echo%a:~2,1%
。这当然意味着,如果最终用户正在输入%b%
的内容,例如,您需要使用set/a
首先从中扣除1
。至于你的问题,你有两个选择,要么启用延迟扩展,要么使用,echo!a:~%b%,1
,或使用这样的调用语句,call echo%%a:~%b%,1%%
。在中介绍了这种类型的管理,尽管主题不同。。。