|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск строки, содержащей текст, и копирование её в лог |
|
CMD/BAT - [решено] Поиск строки, содержащей текст, и копирование её в лог
|
Ветеран Сообщения: 2767 |
Поиск строки, содержащей текст, и копирование её в лог.
Для кучи файлов, расположенных НЕ в одной папке, но внутри одного куста. Файлы НЕ имеют разрешения, потому фильтрация по типу файлов, используемая в разных примерах, не годится Для файлов, лежащих в одной папке, срaбатывает код @echo off setlocal enableextensions set FLOG=%~n0.log set "SOURCE=D:\pics\2\" pushd "%SOURCE%" (for /f "tokens=1,* delims=:" %%a in ('findstr /i /l /c:"mystring" "*.*"') do ( echo(%%b )) > %FLOG% popd @echo off setlocal enableextensions set FLOG=%~n0.log set "SOURCE=D:\pics\2\" pushd "%SOURCE%" for /f "delims=" %%i in ('dir /b /s *.*') do (for /f "tokens=1,* delims=:" %%a in ('findstr /i /l /c:"mystring" "*.*"') do ( echo(%%b )) > %FLOG% popd Где косячу - не понимаю (( |
|
Отправлено: 22:09, 23-07-2018 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата bredych:
![]() |
|
------- Отправлено: 12:38, 24-07-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата Iska:
D:\folder либо \\сетевой ресурс\шара без переделки батника @Echo Off Set "FLOG=%~n0.log" rem Set "SOURCE=Z:\Soft_In\тра ля ля" Set "SOURCE=\\192.168.1.1\test1\Soft_In\тра ля ля" Set "Mask=*." Set "mystring=над крылечком дым колечком" Pushd "%SOURCE%" &&( >"%FLOG%" (For /f "tokens=1* delims=:" %%i in ('findstr /i /l /s /c:"%mystring%" "%Mask%"') Do Echo %%j) popd) |
|
------- Последний раз редактировалось megaloman, 24-07-2018 в 18:36. Отправлено: 18:20, 24-07-2018 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
?! |
|
Отправлено: 18:59, 24-07-2018 | #13 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Iska, вот примеры из того, что у меня есть под руками. Находимся Z:\
В командной строке делаем findstr /i /l /s /c:"wmic" "Z:\Soft_In\тра ля ля\*.bat" Получаем результат Z:\Soft_In\тра ля ля\я180527.bat:wmic fsdir where "name='%DirName%'" get 'CreationDate' /format:csv В командной строке делаем findstr /i /l /s /c:"wmic" "Soft_In\тра ля ля\*.bat" Получаем результат Soft_In\тра ля ля\я180527.bat:wmic fsdir where "name='%DirName%'" get 'CreationDate' /format:csv Аналогично при задании пути \\192.168.1.1\test1\Soft_In\тра ля ля" Если в командном файле в For delims=: то номер токена при разборе придётся указывать свой в зависимости от способа описания пути Применение Pushd в командном файле и findstr /i /l /s /c:"wmic" "*.bat" даёт возможность в любом случае брать для вывода второй токен. |
------- Последний раз редактировалось megaloman, 24-07-2018 в 21:14. Отправлено: 21:08, 24-07-2018 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать megaloman, спасибо, ясно.
Первый пример несколько натянут, вполне можно перейти от относительного к абсолютному пути. Со вторым же вариантом: Цитата megaloman:
|
|
Отправлено: 01:29, 25-07-2018 | #15 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Iska:
в нескольких каталогах. Достаточно будет осуществлять переходы pushd (или cd), иначе придется дублировать целиком конструкции самого кода с путями... Кроме того: Цитата Iska:
- неправильно, если текущий каталог не равен "c:\temp"... в отличие от: |
||
------- Отправлено: 06:09, 25-07-2018 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать YuS_2, Ваши комментарии понятны, но они не по делу и не по существу данног конкретного вопроса, в отличие от разъяснения коллеги megaloman.
|
Отправлено: 07:42, 25-07-2018 | #17 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() в общем, главная мысль в комментариях: Цитата megaloman:
|
||
------- Последний раз редактировалось YuS_2, 25-07-2018 в 09:20. Отправлено: 08:52, 25-07-2018 | #18 |
Ветеран Сообщения: 2767
|
Профиль | Отправить PM | Цитировать возникла похожая задачка...
Убить все задачи планировщика, где в имени встречается слово OneDrive. А имя там может включать в себя всякие уиды и черте-что еще. Пока логика подсказывает громоздкую конструкцию из 3 циклов: 1) schtasks /query >%logfile% 2) findstr.exe /b /i /l /c:"Onedrive" >%log2% 3) for /f "tokens=1 delims= " %%i in (%log2%) schtasks /delete /tn "%%i" /f но наверняка же можно это сделать как-то изящнее? |
------- Отправлено: 09:57, 15-03-2019 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать bredych, упакуйте содержимое полученного %logfile% в архив, каковой приложите к сообщению.
|
Отправлено: 10:19, 15-03-2019 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Поиск строки и использование её части | Ewgenyk | Скриптовые языки администрирования Windows | 0 | 06-12-2017 14:36 | |
CMD/BAT - Поиск строки по слову и добавление новой строки после найденой. | Mikhael2011 | Скриптовые языки администрирования Windows | 17 | 16-03-2017 03:37 | |
CMD/BAT - Поиск и замена строки в txt файлах по содержанию этой строки. | sayyad | Скриптовые языки администрирования Windows | 1 | 06-12-2015 13:20 | |
CMD/BAT - Поиск цифр в текстовом файле и последующий их поиск в названии файлов массива (лог.) | antares_80@vk | Скриптовые языки администрирования Windows | 10 | 25-10-2015 11:34 | |
CMD/BAT - [решено] Поиск строки в файле и замена её на набор из случайных чисел и букв | Sub-Zero | Скриптовые языки администрирования Windows | 6 | 08-02-2011 18:54 |
|