我想从分配给变量的字符串中回显单个数字,但是回显数字的位置将由另一个变量确定。
像这样:
set a=ABCDEF
set b=3
echo %a:~%b%,1%
就像您想在ABCDEF
字符串中回显第三位数字一样,
echo %a:~3,1%
之所以尝试这样做是因为b变量会多次提示用户使用不同的值。
答案 0 :(得分:1)
显示两种方法的示例:
@Echo Off
SetLocal DisableDelayedExpansion
Set "str=VALUE"
Echo Your string is %str%
Choice /C 12345 /M "Choose a positional digit"
Set /A int=%ERRORLEVEL%-1
Call Echo Your positional digit matches the character %%str:~%int%,1%%
Timeout 2 /NoBreak >Nul
Choice /C 12345 /M "Choose a positional digit"
Set /A int=%ERRORLEVEL%-1
SetLocal EnableDelayedExpansion
Echo Your positional digit matches the character !str:~%int%,1!
EndLocal
Timeout -1
答案 1 :(得分:0)
您需要enabledelayedexpansion
从cmd控制台中查看set /?
和setlocal /?
。
@echo off
setlocal enabledelayedexpansion
set a=ABCDEF
set b=3
echo !a:~%b%,1!
另外,由于不能完全有效地从0开始计数,因此b=3
会导致echo
成为D