批次 - 在阵列(需求变量名计算的数字)标记双打

问题描述:

它不会工作:(批次 - 在阵列(需求变量名计算的数字)标记双打

setlocal enabledelayedexpansion 
SET ENR[1]=12345 
SET ENR[2]=12345 
SET ENR[3]=99999 
SET ENR[4]=45678 
SET /a Count=4 

REM marking doubles from array 
SET /a Help1=%Count%-1 
FOR /L %%i in (1,1,%Help1%) do (
    SET /a Help2=%Count%-%%i 
    FOR /L %%a in (1,1,!Help2!) do (
     IF !ENR[%%i]!==!ENR[%%i+%%a]! SET ENR[%%i]="double" 
    ) 

我怎样才能让!ENR[%%i+%%a]!工作课的我希望计算机在计算%%i+%%a扩大之前? 。可变

+3

你算算%% I + %%的if语句,因为批量不能没有'设置/命令了'做数学的外 – SomethingDark

+2

例如:'设置/ A J =% %i + %% a'然后在(!j!)DO IF!ENR [%% i]!==!ENR [%% j]!SET ENR [%% i] =“double “'这个管理完全解释在[这个答案](http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990) – Aacini

+0

我选择了goto选项。 反正谢谢! – mifu

setlocal enabledelayedexpansion 
SET ENR[1]=12345 
SET ENR[2]=12345 
SET ENR[3]=99999 
SET ENR[4]=45678 
SET /a Count=4 

SET /a x=0 
:loop 
SET /a x+=1 
SET /a y=0 
:subloop 
SET /a y+=1 
IF %x% NEQ %y% (IF !ENR[%x%]!==!ENR[%y%]! (SET ENR[%x%]="double")) 
IF %y% NEQ %Count% goto :subloop 
IF %x% NEQ %Count% goto :loop