VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
-
Iska
Re: VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
Iska, Если проще в начале то меня устроит. Ну или в любом другом месте.
-
Kainos
Re: VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
Iska, Текст который я вставляю просто статичный его нет в логе и для него нет особых условий, просто требуется что бы в этих строках было по несколько слов которых нет в оригинальном логе. Для каждой строки свой текст..
-
Kainos
Re: VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
Kainos, как прикажете мне определять «любое другое место» в строке? По какому принципу? Далее — зачем лог убрали, на чём проверять теперь?
Не проверялось:
Скрытый текст
[spoiler]Код: [/spoiler]
Не проверялось:
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
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 & " "
WScript.Quit 1
End If
WScript.Quit 0-
Georgio
Re: VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
Цитата Kainos:
Подскажите а можно добавить в текст вывода дополнительные слова (если это не сложно)?
Пример:
Было:
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
Стало:
04/15 10:51:30 Acceptor application software (Текст1) version is 286170390
04/15 10:51:30 Acceptor variant firmware (Текст2) version is 491908270
04/15 10:51:30 Acceptor serial number (Текст3) is 02294401340
Немного чёрной и белой магии, и Ваша задача решается с помощью такого красивейшего и оригинальнейшего кода пакетного файла:
Код:
.
Подскажите а можно добавить в текст вывода дополнительные слова (если это не сложно)?
Пример:
Было:
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
Стало:
04/15 10:51:30 Acceptor application software (Текст1) version is 286170390
04/15 10:51:30 Acceptor variant firmware (Текст2) version is 491908270
04/15 10:51:30 Acceptor serial number (Текст3) is 02294401340
VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
Немного чёрной и белой магии, и Ваша задача решается с помощью такого красивейшего и оригинальнейшего кода пакетного файла:
Код:
Код: Выделить всё
@<"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.
-
Iska
Re: VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
Цитата Georgio:
Немного чёрной и белой магии,
«Д'Артаньян чувствовал, что тупеет»
.
Немного чёрной и белой магии,
VBS/WSH/JS - [решено] Поиск строки по части названия и вывод данных в ECHO
«Д'Артаньян чувствовал, что тупеет»
.