2017-04-12 49 views
1

它不會工作:(批次 - 在陣列(需求變量名計算的數字)標記雙打

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

回答

0
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