2017-04-12 1 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]!仕事をすることができますcoureの私は、コンピュータが拡大する前に%%i+%%aを計算したいですか? 。変数

+3

あなたは計算する必要があり%% I + %%バッチは '設定/ A'コマンドなしで計算を行うことができないので、if文の外たとえば – SomethingDark

+2

:'セット/ A J =% ENR [%% i]!==!ENR [%% j]!SET ENR [%% i] = "double(%i + %%) "この管理[この回答]で完全に説明されています(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 
関連する問題