Параметр цикла FOR меняет позицию чтения - PullRequest
0 голосов
/ 29 августа 2018

Я хочу просмотреть File_1 и проверить четвертый столбец. Если оно не пустое, напишите в File_2 .

Вот Files_1 :

1;2;3;;;;;;;10
1;2;3;4;;;;;;10
1;2;3;;5;;;;;10

Вот мой командный файл:

for /F "delims=; tokens=1-10" %%A in (File_1.txt) do (
    if "%%D" NEQ "" (
        echo hello World %%D >>File_2.txt
    )
)

Вот что входит в File_2 :

hello World 10 
hello World 4 
hello World 5 

Почему это не всегда читается в четвертом столбце?

Результат, который я ожидал:

hello World 4

Как мне добиться этого результата?

1 Ответ

0 голосов
/ 30 августа 2018

Поскольку на ваш вопрос был дан ответ в комментариях и предложено решение, я подумал, что предоставлю альтернативу:

@Echo Off
SetLocal EnableDelayedExpansion
For /F "UseBackQ Delims=" %%A In ("File_1.txt") Do Call :Sub "%%A" 
Pause
GoTo :EOF

:Sub
Set "Line=%~1"
Set "i=1"
Set "Token!i!=%Line:;="&Set/A i+=1&Set "Token!i!=%"
If Defined Token4 >>"File_2.txt" Echo Hello World %Token4%
Exit /B
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...