批处理脚本如何比较字符串数组

时间:2018-07-04 02:57:46

标签: arrays batch-file cmd

我有一个像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 :(得分:1)

要检查多个(伪)数组元素是否相等,可以尝试以下方法:

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

答案 1 :(得分:0)

一个简单的嵌套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