Как вывести одну цифру из строковой переменной в зависимости от другой переменной в cmd - PullRequest
0 голосов
/ 12 января 2019

Я хочу вывести одну цифру из строки, назначенной переменной, но положение отображаемой цифры будет определяться другой переменной.
Что-то вроде:

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

Как если бы вы хотели отобразить третью цифру в строке ABCDEF, это было бы так же, как:

echo %a:~3,1%

Причина, по которой я пытаюсь сделать это, заключается в том, что переменная b будет запрашиваться пользователем несколько раз с различными значениями.

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Пример, показывающий оба метода:

@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
0 голосов
/ 12 января 2019

Вам нужно будет enabledelayedexpansion

см. set /? и setlocal /? из консоли cmd.

@echo off
setlocal enabledelayedexpansion
set a=ABCDEF
set b=3
echo !a:~%b%,1!

Кроме того, не очень эффективно, мы начинаем считать с 0, поэтому b=3 приведет к echo ing D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...