Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

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

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Наверно, вопрос из разряда глупых, есть файлик 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-файл
Если можно разделить комментариями обе части скрипта

Отправлено: 16:41, 23-11-2011

 

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


похоже это настолько просто, что мастерам лень писать ))

Отправлено: 00:31, 25-11-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Про русский язык я уже промолчу.

Отправлено: 01:04, 25-11-2011 | #3


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

пример:

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

за русский язык извиняюсь )

Отправлено: 21:17, 25-11-2011 | #4


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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.......]
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:00, 26-11-2011 | #5


Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Работает спасибо!
Правда не понял, как определяется переменная A.

Отправлено: 01:02, 26-11-2011 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Добавьте в:
Код: Выделить весь код
		set sTemp=%%j
		set a=!sTemp:~0,-2!
вывод «sTemp»:
Код: Выделить весь код
		set sTemp=%%j
		echo sTemp = [!sTemp!]
		set a=!sTemp:~0,-2!
и прочтите о замене текста в:
Код: Выделить весь код
set /?
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:32, 26-11-2011 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - вытащить из 3-x txt файлов строки в 4-й txt и отправить его в шару на сервер campbell Скриптовые языки администрирования Windows 1 10-11-2011 09:59
.NET - [решено] Определить и записать смещение каждой строки S.T.R.E.L.O.K. Программирование и базы данных 5 15-08-2011 09:55
Любой язык - [решено] Скрипт использующий переменную из файла .txt XXXp Скриптовые языки администрирования Windows 27 18-05-2011 21:34
CMD/BAT - [решено] Ввод данных в переменную из txt-файла river123 Скриптовые языки администрирования Windows 1 10-01-2011 18:43
CMD/BAT - [решено] Чтение строки из файла в переменную Николя Скриптовые языки администрирования Windows 42 17-01-2010 19:42




 
Переход