CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную
-
campbell
CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную
Наверно, вопрос из разряда глупых, есть файлик 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-файл
Если можно разделить комментариями обе части скрипта
пример
текст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
Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную
Вы определитесь, что Вам конкретно нужно, а то у Вас техзадание чересчур противоречивое:
Цитата:
Код:
Цитата:
ориентиром для него тоже служит некое слово или знак "," например.
Давайте не будем гадать: пробел, «некое слово» или «знак ","». Приведите исходные данные, пример реального файла, что нужно получить на выходе.
Про русский язык я уже промолчу.
Цитата:
Код:
Код: Выделить всё
текст4 текст5 текст6Цитата:
ориентиром для него тоже служит некое слово или знак "," например.
Давайте не будем гадать: пробел, «некое слово» или «знак ","». Приведите исходные данные, пример реального файла, что нужно получить на выходе.
Про русский язык я уже промолчу.
-
campbell
Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную
не знаю как разобрать следующее
пример:
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.......
за русский язык извиняюсь )
пример:
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, действительно такой разнобой:
Код:
в логе?
Попробуйте так (без каких-либо проверок):
Код:
Я использовал приведённый Вами текст:
Код:
сохранив его в файле «E:\Песочница\0093\0001.txt».
Код:
Код:
Код: Выделить всё
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, на строки и назначить каждой переменную
Работает спасибо!
Правда не понял, как определяется переменная A.
Правда не понял, как определяется переменная A.
-
campbell
Re: CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную
Цитата campbell:
Правда не понял, как определяется переменная A.
campbell, через промежуточную переменную отрезаются два «лишних» символа — запятая и пробел — «, ».
Добавьте в:
Код:
вывод «sTemp»:
Код:
и прочтите о замене текста в:
Код:
Правда не понял, как определяется переменная 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!и прочтите о замене текста в:
Код:
Код: Выделить всё
set /?