Пакетное - чтение файла и поиск токена - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть текстовый файл с разными значениями.

define Domain "http://xyz.co"
define Remote "https:/www.test.co"
define OUTFILE "Folder name"
...

Я хотел бы прочитать файл и найти специальные токены, такие как Domain oder OUTFILE и установить значение из двойных кавычек в переменную. Значение в двойных кавычках может содержать пробелы.

for /F "eol=; tokens=*" %%z in ("filename.txt") do (
set value=%%z
ECHO %%z | FINDSTR /C:"Domain" >nul & IF NOT ERRORLEVEL 1 (GOTO ITERATE)
)

:ITERATE
for /f tokens^=2^ delims^=^" %%p in ("%value%") do set Domain=%%p


echo %Domain% 

Пока это работает для одного значения.

Можно ли проанализировать файл только один раз? Есть ли лучший способ получить содержимое внутри двойных кавычек?

Спасибо!

1 Ответ

0 голосов
/ 01 ноября 2018
:: Q:\Test\2018\11\01\SO_53101679.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion

::clear env vars
For %%A in (Domain OUTFILE) do set "%%A="

for /F "eol=; tokens=1,2*" %%A in ('
  findstr /i "^define.Domain ^define.OUTFILE" filename.txt
') do Set %%B=%%C

For %%A in (Domain OUTFILE) do if defined %%A Echo %%A=!%%~A!

Пример вывода на основе указанного выше фрагмента:

> Q:\Test\2018\11\01\SO_53101679.cmd
Domain=http://xyz.co
OUTFILE=Folder name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...