如何根据cmd中的另一个变量从字符串变量中回显一个数字

时间:2019-01-12 14:10:20

标签: batch-file cmd

我想从分配给变量的字符串中回显单个数字,但是回显数字的位置将由另一个变量确定。
像这样:

set a=ABCDEF
set b=3
echo %a:~%b%,1%

就像您想在ABCDEF字符串中回显第三位数字一样,

echo %a:~3,1%

之所以尝试这样做是因为b变量会多次提示用户使用不同的值。

2 个答案:

答案 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