Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   поиск текста в файле и задание в переменную (http://forum.oszone.net/showthread.php?t=330220)

n0lkk 03-10-2017 00:14 2768111

поиск текста в файле и задание в переменную
 
Добрый день.
Интересует метод поиска наименования параметра в текстовом файле и создания переменной на основе параметра.
Пример:
Имеется текстовый файл
текст....,DATA1:"1.1.2000",текст

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

Iska 03-10-2017 01:00 2768118

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

n0lkk 03-10-2017 07:37 2768142

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

Iska 03-10-2017 07:46 2768144

Цитата:

Цитата n0lkk
Iska, Добавил пример во вложение. »

Вы бы дали не пример, а образцы нескольких файлов. Ибо Вы явственно намудрили с кавычками при изготовлении примера. И там действительно кодировка UTF-8 с BOM?

Цитата:

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

Нашли, выделили — что дальше? Прочитать значение в переменную окружения?

alpap 03-10-2017 13:52 2768194

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 2768268

alpap, То что надо. Огромное спасибо!


Время: 01:34.

Время: 01:34.
© OSzone.net 2001-