2013-03-05 2 views
0

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

10.4.33.22 ocean,cat,dog,monkey 
33.55.66.77 rabbit,piggy 

я создал цикл в цикле через IP-адрес.

for /F %%i in (%File_dbname%) do ( 
    echo %%i database >> %output-file% 
) 

В первом IP-адресе есть 4 экземпляра.

Я думал использовать другой цикл для циклического прохождения этих экземпляров/по IP-адресу.

Я не уверен, как использовать какой-либо разделитель, чтобы пропустить пробелы между 1-м IP-адресом и перейти в океан до тех пор, пока он не достигнет обезьяны, а когда обнаружит пробелы после обезьяны, он перейдет к следующей строке.

Прошу дальнейших советов, спасибо.

ответ

2

Вы можете гнездиться для циклов так, как вы описываете. Вот пример:

for /F "tokens=1*" %%i in (%File_dbname%) do ( 
    for %%A in (%%j) do (
     echo %%i %%A >> %output-file% 
    ) 
) 

Используя в качестве примера данные, которые вы упомянули, то результат будет:

10.4.33.22 ocean 
10.4.33.22 cat 
10.4.33.22 dog 
10.4.33.22 monkey 
33.55.66.77 rabbit 
33.55.66.77 piggy 

Это то, что вы ищете, или же он, по крайней мере позволит вам увидеть, как это работает ?

В петле for без какого-либо переключателя /f или запятой рассматривается как разделитель. В петле for /f"tokens=1*" означает %%i - это первый токен (что означает все до места), а %%j - это все, что не включено в %%i.

+0

Rojo, ваш пример помог понять дальше. Возможно ли это, если не повторить запись одного и того же IP-адреса? – flaskvacuum

+0

Конечно. Просто 'echo %% i database >>% output-file%' вне внутреннего цикла, затем внутри внутреннего цикла 'echo %% A >>, где бы вы ни хотели'. – rojo

+0

Rojo.Tks для указателя. Сможете ли вы порекомендовать мне несколько сайтов для начинающих? – flaskvacuum

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