Есть ли способ в партии, чтобы определить номер, или я должен использовать много OS, если - PullRequest
0 голосов
/ 25 августа 2018

Так что моя проблема в том, что я не хочу играть в barchoba с моей программой и спрашивать, заканчивается ли переменная1 на 1 или 2 или около того ... Не могли бы вы показать мне хитрость, как узнать в моей программе конечную цифру моей переменной?

Спасибо за совет!

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Поскольку %variable:~-1% расширяется до последнего символа %variable1%, вы можете использовать GEq, (Больше или равно) и LEq, (Меньше или Равен) , компараторы для проверки.

@Echo Off

Rem Undefine variables
Set "variable1="
Set "digit="

Rem Ask for the variable string value
Set /P "variable1=Please enter your variable string value: "

Rem Test if the variable string value ends with a digit
If "%variable1:~-1%" GEq "0" If "%variable1:~-1%" LEq "9" Set "digit=%variable1:~-1%"
If Defined digit (Echo variable1 ends with a %digit%) Else Echo variable1 does not end with a digit

Rem Add a delay to read the Echo message
Timeout 3 >Nul
0 голосов
/ 25 августа 2018
rem Initialize digits just once, at beginning
set "digits=0123456789"


rem Test if "variable1" ends in any digit
if "!digits:%variable1:~-1%=!" neq "%digits%" (
   echo Variable1 ends in digit
) else (
   echo Variable1 does not end in digit
)

Метод принимает последний символ переменной1: %variable1:~-1% и пытается исключить его из переменной цифр: "!digits:V=!". Если результат отличается от исходного значения переменной цифр: "%digits%", то символ действительно был цифрой ...

Обратите внимание, что вам нужно setlocal EnableDelayedExpansion, чтобы этот метод работал ...

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