|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO |
|
VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
|
Пользователь Сообщения: 61 |
Уважаемые форумчане!
Прошу вашего содействия в написании скрипта который искал бы данные с конца документа (документ во вложении). Данные которые нужно найти: MEIBillAccFWDownLoad 04/15 10:51:30 7,222,765 0AFC> Acceptor application software version is 286170390 MEIBillAccFWDownLoad 04/15 10:51:30 7,222,906 0AFC> Acceptor variant firmware version is 491908270 MEIBillAccFWDownLoad 04/15 10:51:30 7,223,078 0AFC> Acceptor serial number is 02294401340 Подчеркнуты статичные данные. Принцип работы следующий: 1. Найти с конца документа эти 3 строки (их может быть больше, но нам нужны самые свежие которые располагаются в конце лога). 2. Вывести на экран следующую информацию: 04/15 10:51:30 Acceptor application software version is 286170390 04/15 10:51:30 Acceptor variant firmware version is 491908270 04/15 10:51:30 Acceptor serial number is 02294401340 |
|
Отправлено: 13:03, 15-04-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Kainos, Вы меня не поняли. Озвучьте конкретику.
|
Отправлено: 14:34, 16-04-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 61
|
Профиль | Отправить PM | Цитировать Iska, Текст который я вставляю просто статичный его нет в логе и для него нет особых условий, просто требуется что бы в этих строках было по несколько слов которых нет в оригинальном логе. Для каждой строки свой текст..
|
Отправлено: 14:37, 16-04-2015 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Kainos, как прикажете мне определять «любое другое место» в строке? По какому принципу? Далее — зачем лог убрали, на чём проверять теперь?
Не проверялось: Скрытый текст
Option Explicit Dim strSourceFile Dim strContent Dim arrPatterns Dim arrPattern If WScript.Arguments.Count = 1 Then strSourceFile = WScript.Arguments.Item(0) With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strSourceFile) Then With .OpenTextFile(strSourceFile) strContent = .ReadAll() .Close End With Else WScript.Echo "Can't find source file [" & strSourceFile & "]." WScript.Quit 2 End If End With arrPatterns = Array( _ Array( _ "MEIBillAccFWDownLoad (\d{2}/\d{2} \d{2}:\d{2}:\d{2} ).* (Acceptor application software version is \d+)", _ "software version", _ "software $$$ version", _ "(Текст1)" _ ), _ Array( _ "MEIBillAccFWDownLoad (\d{2}/\d{2} \d{2}:\d{2}:\d{2} ).* (Acceptor variant firmware version is \d+)", _ "firmware version", _ "firmware $$$ version", _ "(Текст2)" _ ), _ Array( _ "MEIBillAccFWDownLoad (\d{2}/\d{2} \d{2}:\d{2}:\d{2} ).* (Acceptor serial number is \d+)", _ "number is", _ "number $$$ is", _ "(Текст3)" _ ) ) With WScript.CreateObject("VBScript.RegExp") .IgnoreCase = True .Global = True For Each arrPattern In arrPatterns .Pattern = arrPattern(0) If .Test(strContent) Then With .Execute(strContent) With .Item(.Count - 1).Submatches WScript.Echo Replace(Replace(.Item(0) & .Item(1), arrPattern(1), arrPattern(2)), "$$$", arrPattern(3)) End With End With Else WScript.Echo "Can't find pattern [" & .Pattern & "] in source file [" & strSourceFile & "]." End If Next End With Else WScript.Echo "Usage: cscript.exe //nologo " & WScript.ScriptName & " <Source file>" WScript.Quit 1 End If WScript.Quit 0 |
Отправлено: 16:15, 16-04-2015 | #13 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Kainos:
Немного чёрной и белой магии, и Ваша задача решается с помощью такого красивейшего и оригинальнейшего кода пакетного файла: @<"meibillaccfwdownload_093013.log" ( for %%i in ( "Acceptor application software (Text 1) version is" "Acceptor variant firmware (Text 2) version is" "Acceptor serial number (Text 3) is" ) do @( for /f "delims=(" %%j in (%%i) do @( for /f "tokens=2,3,5*" %%k in ('find "%%j"') do @( for %%o in (%%n) do @set %%~i=%%k %%l %%~i %%o ) ) call echo %%%%~i%% ) ) @pause>nul |
|
Отправлено: 20:54, 16-04-2015 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Georgio:
![]() |
|
Отправлено: 22:21, 16-04-2015 | #15 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Поиск строки по слову и добавление новой строки после найденой. | Mikhael2011 | Скриптовые языки администрирования Windows | 17 | 16-03-2017 03:37 | |
VBS/WSH/JS - поиск слова в тексте и вывод части текста после искомого слова | sergey23031978 | Скриптовые языки администрирования Windows | 9 | 18-02-2015 16:54 | |
VBS/WSH/JS - [решено] Поиск строки по маске в txt файле и замена всей строки из InputBox | ultrarare | Скриптовые языки администрирования Windows | 11 | 03-07-2013 14:37 | |
CMD/BAT - Выборка файлов по части названия | скуби_ДУ | Скриптовые языки администрирования Windows | 7 | 03-08-2011 10:35 |
|