|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Последнее значение в строке |
|
CMD/BAT - [решено] Последнее значение в строке
|
Новый участник Сообщения: 20 |
Профиль | Отправить PM | Цитировать
Добрый день! прошу о помощи. Долго искал, но так и не нашёл подходящего решения для задачи.
Есть текстовый файл в который скидываются данные в одну строку в виде: ---------- TESTLOG.TXT/23.06.2015-username-18:15:18,31-unblocked//23.06.2015-username-20:53:08,33-unblocked//23.06.2015-username-20:53:08,43-unblocked/ /23.06.2015-username-20:53:08,77-unblocked/ /23.06.2015-username-20:53:08,93-unblocked//23.06.2015-username-20:53:15,52-unblocked//23.06.2015-username-20:53:16,83-unblocked//23.06.2015-username-21:04:48,97-unblocked/ С первым значением всё просто: А вот как выдирать последнее значение из строки так и не могу понять. Т.е. в данном примере последним значением должно быть записано: При этом все значения могут меняться и быть разными, за исключением username. Соответственно и кол-во значений до последнего тоже постоянно будет разным. |
|
Отправлено: 13:18, 29-06-2015 |
Ветеран Сообщения: 1758
|
|
Отправлено: 13:41, 29-06-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Спасибо. А можно хотя бы краткий комментарий по каждой из строк? )
|
Отправлено: 14:04, 29-06-2015 | #3 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Не работает в общем скрипте :\
@echo off set temp=temp.txt set log=log.txt set user1=name1 set user2=name2 set user3=name3 set user4=name4 set user5=name5 ::user1 for /f "delims=" %%i in ('find "/%date%-%user1%-" %log%') do <nul Set /p $V=%%i>>"%temp%" for /f "tokens=2 delims=/" %%a in (%temp%) do echo %%a >> %user1%.txt" setlocal <temp.txt set /p "text=" for %%i in (%text:/=" %) do set "res=%%~i" echo %res: =% >> %user1%.txt" endlocal if exist "%temp%" del "%temp%" /f /q ::user2 for /f "delims=" %%i in ('find "/%date%-%user2%-" %log%') do <nul Set /p $V=%%i>>"%temp%" for /f "tokens=2 delims=/" %%a in (%temp%) do echo %%a>>%user2%.txt" setlocal <temp.txt set /p "text=" for %%i in (%text:/=" %) do set "res=%%~i" echo %res: =% >> %user2%.txt" endlocal if exist "%temp%" del "%temp%" /f /q ::user3 и т.д. |
Отправлено: 17:40, 29-06-2015 | #4 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата ncmps:
А Вы уверены, что в лог-файле присутствует текущая дата ("%date%"), которую Вы ищете? Если уверены, то попробуйте такой "общий скрипт": @echo off set "log=log.txt" set "$user1=name1" set "$user2=name2" set "$user3=name3" set "$user4=name4" set "$user5=name5" :: и. т. д. for /f %%i in ('set $user^| find/c /v ""') do ( for /l %%j in (1 1 %%i) do ( for /f "delims=/" %%k in ('^<"%log%" cmd/v/c find "/%date%-!$user%%j!-"') do ( set/a n+=1 cmd/v/c echo !n!| >nul findstr/x 1&& cmd/v/c ">"!$user%%j!.txt" echo %%k"|| set x=%%k ) if defined x cmd/v/c ">>"!$user%%j!.txt" echo !x!" set x=& set n= ) ) exit/b . |
||
Отправлено: 19:52, 29-06-2015 | #5 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата Georgio:
Спасибо, буду пытаться разобраться. |
|
Отправлено: 12:06, 30-06-2015 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? | Dark Ange1 | Скриптовые языки администрирования Windows | 28 | 22-06-2022 14:37 | |
CMD/BAT - Как получить значение искомой подстроки в строке? | Loki3D | Скриптовые языки администрирования Windows | 11 | 24-02-2018 08:37 | |
CMD/BAT - Удалить последнее слово в строке | AlekseyB. | Скриптовые языки администрирования Windows | 15 | 12-09-2013 10:28 | |
Загрузка - XP SP3. Значение «громкость» сбрасывается в среднее значение при перезагрузке. | mitkadritka | Microsoft Windows 2000/XP | 9 | 24-02-2012 20:37 | |
последнее сообщение | Dimas_83 | О сайте и форуме | 2 | 04-07-2006 10:57 |
|