Я читаю файл, используя пакетный скрипт. В основном я хочу прочитать определенную строку и установить ее токены для различных переменных. Проблема в том, что в линии нет фиксированного количества токенов. Рассмотрим следующий формат файла:
Line 1 Domains www.google.com www.yahoo.com www.reddit.com ...
Line 2 541 5435 322 123
Line 3 273 123 432 123
Мой скрипт будет читать строку, третий токен которой равен «Доменам», и сохранять токены, которые следуют в разные переменные. В этом случае я бы установил Domain1=www.google.com
, Domain2=www.yahoo.com
, Domain3=www.reddit.com
и так далее. Мой код будет выглядеть примерно так:
for /f "tokens=3*" %%A in (%file%) do (
if ("%%A"=="Domains") (
REM Delimit %%B with a space and store each token into different variables
)
)
РЕДАКТИРОВАТЬ: Проблема решена. Я слишком рано отвечаю на свой вопрос из-за недостаточного количества повторений, но вот мое решение, начиная с поста Джереми:
set index=1
for /f "tokens=3*" %%A in (%file%) do (
if ("%%A"=="Domains") (
for %%C in (%%B) do (
set Domain!index!=%%C
set /A index+=1
)
)
)