Пакетный скрипт как сравнивать массив строк - PullRequest
0 голосов
/ 04 июля 2018

У меня есть массив как a[0]= ABC , a[1]=ABC , a[2]=ABC, и я хочу сравнить его с помощью:

if  %a[0]%==%a[1]%=%a[2]% ( echo Equal)

Сравнение трех не работает, но сравнение двух работает нормально.

if  %a[0]%==%a[1]% ( echo Equal)

Любое предложение, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Чтобы проверить множественность (псевдо) элементов массива на равенство, вы можете попробовать это:

setlocal EnableDelayedExpansion
set "FLAG=#"   & rem // (flag that is going to be cleared in case of an encountered inequality)
set /A "MAX=9" & rem // (greatest array index number to be included in the comparison loop)
for /L %%I in (1,1,%MAX%) do if not "!a[0]!"=="!a[%%I]!" set "FLAG="
if defined FLAG echo All array elements from index 0 to %MAX% are equal.
endlocal
0 голосов
/ 04 июля 2018

Простая вложенная команда IF сделает то, что вы хотите.

if  "%a[0]%"=="%a[1]%" if "%a[1]%"=="%a[2]%" echo Equal

Еще одно простое решение для сравнения 3 чисел, чтобы увидеть, все ли они одинаковые.

if "%a[1]%,%a[2]%,%a[3]%"=="%a[2]%,%a[3]%,%a[1]%" echo All same
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...