Пакетный файл: установите переменные, используя динамическое число токенов - PullRequest
1 голос
/ 23 августа 2011

Я читаю файл, используя пакетный скрипт. В основном я хочу прочитать определенную строку и установить ее токены для различных переменных. Проблема в том, что в линии нет фиксированного количества токенов. Рассмотрим следующий формат файла:

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
        )
    )
)

1 Ответ

1 голос
/ 23 августа 2011

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

@echo off

for /f "tokens=3*" %%A in (%file%) do (
  if "%%A"=="Domains" (
    set domains=%%B
  )
)

for %%A in (%domains%) do (
  echo %%A
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...