Войти

Показать полную графическую версию : поиск текста в файле и задание в переменную


n0lkk
03-10-2017, 00:14
Добрый день.
Интересует метод поиска наименования параметра в текстовом файле и создания переменной на основе параметра.
Пример:
Имеется текстовый файл
текст....,DATA1:"1.1.2000",текст

Необходимо чтобы батник искал параметр "DATA1", и в переменную добавлял переменное значение - "1.1.2000"

Iska
03-10-2017, 01:00
Упакуйте файл в архив и приложите к сообщению. Покажите на примере, что искать, где искать, что и куда добавлять. Более простым языком. Ибо написанное в Вашем сообщении оставляет больше вопрос, нежели проясняет ситуацию.

n0lkk
03-10-2017, 07:37
Iska, Добавил пример во вложение.
Единственный момент - некоторые параметры, такие как "TIME" в некоторых файлах могут отсутствовать, и положение DATA1 в строке не постоянно. Т.е. необходимо найти DATA1:, а затем выделить значения между первой следующей после DATA1 кавычкой и второй кавычкой после самого значения.

Iska
03-10-2017, 07:46
Iska, Добавил пример во вложение. »
Вы бы дали не пример, а образцы нескольких файлов. Ибо Вы явственно намудрили с кавычками при изготовлении примера. И там действительно кодировка UTF-8 с BOM?

Т.е. необходимо найти DATA1:, а затем выделить значения между первой следующей после DATA1 кавычкой и второй кавычкой после самого значения. »
Нашли, выделили — что дальше? Прочитать значение в переменную окружения?

alpap
03-10-2017, 13:52
n0lkk,
кодировка кода 866
если кириллицы не будет в txt (там кодировка utf-8), проблем быть не должно.

@echo off
::строки: 558.txt
::HIDDEN:"1",TIME:"10:00","DATA1:"1.1.2000",N:"15"
::HIDDEN:"2","DATA1:"1.1.2500",N:"17"
<558.txt (for /f "delims=" %%a in ('find /i "DATA1"') do @call :# "%%a")
pause& exit

:#
set "s=%~1"
for %%A in ("%s:,=" "%") do for /f tokens^=2^ delims^=^" %%a in ('echo "%%~A"^|find /i "DATA1"') do echo %%a
exit /b

n0lkk
03-10-2017, 20:13
alpap, То что надо. Огромное спасибо!




© OSzone.net 2001-2012