批次 - 在阵列(需求变量名计算的数字)标记双打
问题描述:
它不会工作:(批次 - 在阵列(需求变量名计算的数字)标记双打
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
扩大之前? 。可变
答
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
你算算%% I + %%的if语句,因为批量不能没有'设置/命令了'做数学的外 – SomethingDark
例如:'设置/ 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
我选择了goto选项。 反正谢谢! – mifu