Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Умный Поиск слов в файлах!

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


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

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


Есть два папки одних логи в втором сами файлы! Лог видеться на ошибках работе!
Так задача: Батник должен зайти папку с лог файлами взять файл там найти слова error после слова идет номер ошибке
error(пробел)121546(пробел)0121 (номер не повторяется) считать этот номер зайти второй папку с файлами и там в файлах найти это номер и скопировать этот файл с логом в другую папку. Было бы хорошо если они были в папки по пара каждый лог, их много!
Благодарю оказавших помощь!

Отправлено: 09:51, 28-10-2014

 

Ветеран


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

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


Код: Выделить весь код
@echo off

set "logs_dir=D:\Logs"
set "files_dir=D:\Files"
set "copies_dir=D:\Copies"

for /f "delims=" %%i in ('findstr /irc:"error [0-9][0-9]* [0-9][0-9]*" "%logs_dir%\*"') do (
 set var=%%i
 for /f "tokens=1,2 delims=$" %%j in ('call set /p"=%%var:error =$%%"^<nul') do (
  for /f "tokens=1,2" %%l in ("%%k") do (
   for /f "delims=" %%n in ('findstr /mc:"%%l %%m" "%files_dir%\*"') do (
    echo f| xcopy "%%n" "%copies_dir%\%%l %%m\%%~nxn">nul
    for /f "tokens=1,2 delims=:" %%o in ("%%j") do (
     copy "%%o:%%p" "%copies_dir%\%%l %%m">nul
     )
    )
   )
  )
 )

exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:25, 29-10-2014 | #2



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

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


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


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

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


щя проверю, но все равно спасибо за внимания!

Отправлено: 14:21, 29-10-2014 | #3


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


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

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


Georgio извиняюсь я вас чуть-чуть обманул признак выглядит так:
error(пробел)12.15.4.6(пробел)0121 Когда я удалил там точки класс все работает! Хотел сам решит эту проблему но не как не получается! Но вам Спасибо!

Отправлено: 16:15, 29-10-2014 | #4


Ветеран


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

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


Цитата muqanna:
Когда я удалил там точки класс все работает! »

muqanna, не надо удалять точки. Просто тогда так:

Код: Выделить весь код
for /f "delims=" %%i in ('findstr /irc:"error [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]* [0-9][0-9]*" "%logs_dir%\*"') do (
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:37, 29-10-2014 | #5


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


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

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


понял щя проверим! ...

Отправлено: 06:39, 30-10-2014 | #6


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


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

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


спасибо все работает!
Georgio Вопрос с того же сценарии если Variant=asda234e4sdaasd; типа такого мне надо взять код после = до ; а код может всегда меняться может 1 однозначной или 30 или 50 значения не ограниченно по количеству. Или такой вариант ищу слова Variant когда нахожу его
надо считать слова My Variant тут место my variant может быт любой слова! А Variant не меняется!
<input type="Variant" name="ie" value="windows-1251" >My Variant</>
Потом все это залит в тхт файл!
Спасибо за внимания!

Отправлено: 12:10, 30-10-2014 | #7


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


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

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


Georgio Вопрос по первому примеру. Как можно сделать так что когда копирует файл из Logs, primer.log заберал primer_00.log копировал его тоже, ну типа как primer*.*! Сам тоже ковыряюсь боюсь испортит код сделано очень умно! Я в шоки что bat ники творят чудеса!

Отправлено: 16:29, 30-10-2014 | #8


Ветеран


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

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


Цитата muqanna:
если Variant=asda234e4sdaasd; типа такого мне надо взять код после = до ; а код может всегда меняться может 1 однозначной или 30 или 50 значения не ограниченно по количеству. »
Код: Выделить весь код
for /f "tokens=2 delims==;" %%i in ('findstr /irc:".*Variant=..*;.*" "example.txt"') do echo %%i>>"Variant.txt"
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:38, 31-10-2014 | #9


Ветеран


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

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


Цитата muqanna:
ищу слова Variant когда нахожу его
надо считать слова My Variant тут место my variant может быт любой слова! А Variant не меняется!
<input type="Variant" name="ie" value="windows-1251" >My Variant</> »
Код: Выделить весь код
for /f "tokens=2 delims=<>" %%i in ('findstr /irc:"^\<input type=\"Variant\" name=\"ie\" value=\"windows\-1251\" \>..*\<\/\>$" "example.txt"') do echo %%i>>"Variant.txt"

Отправлено: 05:47, 31-10-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - [решено] Поиск слов hacker16 Программирование и базы данных 0 22-07-2014 21:10
CMD/BAT - [решено] поиск слов Letrblak Скриптовые языки администрирования Windows 2 09-12-2012 17:30
Любой язык - [решено] умный поиск-сравнение и замена в списках Baranius Скриптовые языки администрирования Windows 26 14-06-2012 21:58
Поиск слова в двух файлах david141 Вебмастеру 0 24-04-2012 02:41
C/C++ - Поиск текста в файлах student_po Программирование и базы данных 6 04-09-2009 23:33




 
Переход