arrays - 批处理脚本如何比较字符串数组
问题描述
我有类似的数组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)
有什么建议吗?
解决方案
要检查多个(伪)数组元素是否相等,您可以尝试以下操作:
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