2014-12-24 5 views
0

Я читаю текстовый файл, строчный по строке с определенной строкой, а затем сохраняю каждую строку в массиве. Теперь мне нужно сравнить каждый элемент массива с определенной строкой. Я попытался с помощью ниже кода .........сравнить элементы массива со специфической строкой

setlocal enabledelayedexpansion enableextensions 
for /F "tokens=2,3 delims= " %%a in ('findstr "associationMaxRtx maxIncomingStream maxOutgoingStream initialAdRecWin maxUserdataSize mBuffer nThreshold PathMaxRtx maxInitialRtrAtt minimumRto maximumRto initialRto rtoAlphaIndex tSack" C:\Users\ephajin\logs.txt') do (
    set /A count+=1 
    set vartmp1=%%a 
    set vartmp2=%%b 
    set "array[!count!]="%%a %%b"" 
) 

(FOR /L %%a IN (1,1,%count%) DO SET "result=!result! !array[%%a]!" 
if %result% == "associationMaxRtx 8"(
echo no need of modification) > result.txt         

, но в результате файл я получаю следующий вход:

get . associationMaxRtx 8 associationMaxRtx 8 get . maxIncomingStream 17 maxIncomingStream 17 get . maxOutgoingStream 17 maxOutgoingStream 17 get . initialAdRecWin 32768 initialAdRecWin 32768 maxUserDataSize 1480 maxUserDataSize 1480 get . mBuffer 256 mBuffer 256 get . nThreshold 192 switchbackMinThreshold 1 nThreshold 192 switchbackMinThreshold 1 get . get . maxInitialRtrAtt 8 maxInitialRtrAtt 8 get . minimumRto 10 minimumRto 10 get . maximumRto 40 maximumRto 40 get . initialRto 20 initialRto 20 get . rtoAlphaIndex 3 rtoAlphaIndex 3 get . tSack 4 tSack 4 get tSack 

в файл результатов всех элементов массива показывается в строке, почему я не знаю но это фактически так:

array[0]=get . 
array[1]=associationMaxRtx 8 
array[2]=associationMaxRtx 8 

так on.I должны сравнивать каждый элемент массива с определенной строки, например, для массива [1] = «associationMaxRtx 8», а затем распечатать сообщение .Как это сделать, пожалуйста, помогите мне

+0

Пожалуйста, поставьте ссылку на вопрос, который вы имеете в виду. Также, пожалуйста, отформатируйте код. –

+0

Может кто-нибудь, пожалуйста, помогите мне на вопрос (http://stackoverflow.com/q/27635227/4369443) – user94945

ответ

0

Я думаю, кусок коды отсутствует выше, но для целей удаления дополнительных кавычек в результате SET заявления, это будет работать:

(FOR /f "tokens=1* delims==" %%a IN ('set array[') DO SET "result=%%~b" 
ECHO "%result%") > result.txt 

добавляя ~ знак перед тем b (что делает его %%~b), ведущие и трейлинг-котировки вокруг того, что %%b ex до.

Это даст (к примеру):

SET "результат = rtoAlphaIndex 3"

Смежные вопросы