CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Ответить
 • Просмотры: 1
Аватара пользователя
campbell

CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Сообщение campbell »

Наверно, вопрос из разряда глупых, есть файлик txt

пример



текст1 текст1 текст1

текст2 текст2 текст2

текст3 текст3 текст3

текст4 текст5 текст6



Нужный скрипт состоящий из 2 разделов

1 - который разбирает по строкам и назначал строки в переменные

2 - текст4 текст5 текст6 разбирал бы на %A%=текст4, %B%= текст5, %С%=текст6, ориентиром для него тоже служит некое слово или знак "," например.

т.е. в начале скрипта задается не какая переменная и потом при разборе строк, упираясь в определенное в переменной слово, он бы делил строку на до и после этого слова, распределяя по разным переменным.

В конце он передает все переменные в другой bat-файл

Если можно разделить комментариями обе части скрипта
Аватара пользователя
campbell

Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Сообщение campbell »

похоже это настолько просто, что мастерам лень писать ))
Аватара пользователя
campbell

Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Сообщение campbell »

Вы определитесь, что Вам конкретно нужно, а то у Вас техзадание чересчур противоречивое:


Цитата:





Код:

Код: Выделить всё

текст4 текст5 текст6






Цитата:



ориентиром для него тоже служит некое слово или знак "," например.



Давайте не будем гадать: пробел, «некое слово» или «знак ","». Приведите исходные данные, пример реального файла, что нужно получить на выходе.



Про русский язык я уже промолчу.
Аватара пользователя
campbell

Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Сообщение campbell »

не знаю как разобрать следующее



пример:



User 150, user-online 50: Anay,Petay,Vasay,Sasha..... User offline- 100 Sergei,Stepan,Misha.......



в итоге

%A= User 150

%B =user-online 50: Anay,Petay,Vasay,Sasha.....

%C=User offline- 100 Sergei,Stepan,Misha.......



за русский язык извиняюсь )
Аватара пользователя
campbell

Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Сообщение campbell »

campbell, действительно такой разнобой:



Код:

Код: Выделить всё

user-online
User offline-

в логе?



Попробуйте так (без каких-либо проверок):



Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
set sFile=E:\Песочница\0093\0001.txt
set sDelim1=user-online
set sDelim2=User offline-
for /f "usebackq delims==" %%i in ("%sFile%") do (
	set sLine=%%i
	set sDelim1Line=!sLine:%sDelim1%=*!
	set sDelim2Line=!sDelim1Line:%sDelim2%=*!
	for /f "tokens=1-3 delims=*" %%j in ('echo !sDelim2Line!') do (
		set sTemp=%%j
		set a=!sTemp:~0,-2!
		set b=%sDelim1%%%k
		set c=%sDelim2%%%l
		echo A = [!a!]
		echo B = [!b!]
		echo C = [!c!]
	)
)
endlocal
exit /b 0

Я использовал приведённый Вами текст:



Код:

Код: Выделить всё

User 150, user-online 50: Anay,Petay,Vasay,Sasha..... User offline- 100 Sergei,Stepan,Misha.......

сохранив его в файле «E:\Песочница\0093\0001.txt».


Результат




Код:

Код: Выделить всё

A = [User 150]
B = [user-online 50: Anay,Petay,Vasay,Sasha..... ]
C = [User offline- 100 Sergei,Stepan,Misha.......]
Аватара пользователя
campbell

Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Сообщение campbell »

Работает спасибо!

Правда не понял, как определяется переменная A.
Аватара пользователя
campbell

Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Сообщение campbell »

Цитата campbell:



Правда не понял, как определяется переменная A.
CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную




campbell, через промежуточную переменную отрезаются два «лишних» символа — запятая и пробел — «, ».



Добавьте в:



Код:

Код: Выделить всё

		set sTemp=%%j
		set a=!sTemp:~0,-2!

вывод «sTemp»:



Код:

Код: Выделить всё

		set sTemp=%%j
		echo sTemp = [!sTemp!]
		set a=!sTemp:~0,-2!

и прочтите о замене текста в:



Код:
Ответить

Вернуться в «Скриптовые языки администрирования Windows»