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

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

Ответить
Настройки темы
CMD/BAT - поиск замена с рекурсией

Аватара для batyaPS

Ветеран


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

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


Изменения
Автор: batyaPS
Дата: 17-07-2017
скрипт1
есть папка mail
в ней куча почтовых профилей пользователей
нужно найти все файлы msgFilterRules.dat в подпапках с рекурсией без ограничения
и произвести поиск замену(возможно удаление текста) текста



скрипт2
есть папка mail
в ней куча почтовых профилей пользователей
нужно найти файлы prefs.js не глубже одного вхождения

т.е.
mail
user1
prefs.js
user2
prefs.js
...
prefs.js
userN
prefs.js

и произвести сложный поиск/замену текста

нужно строку вида corp/*текст_имя_пользователя*/*текст_имя_ящика*
поменять на строку вида corp/*тескт*/m_*текст*
т.е. нужно добавить только m_

данный текст встречается только в строке такого вида
user_pref("mail.server.server1.realuserName", "corp/user_fio/imya_yacika");
user_pref("mail.server.server2.realuserName", "corp/user_fio/imya_yacika");
....
user_pref("mail.server.server9.realuserName", "corp/user_fio/imya_yacika");


т.е. все возможные строки
user_pref("mail.server.server1-9.realuserName", "corp/user_fio/imya_yacika");
нужно поменять на
user_pref("mail.server.server1-9.realuserName", "corp/user_fio/m_imya_yacika");

Отправлено: 11:38, 16-07-2017

 

Аватара для batyaPS

Ветеран


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

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


могу добавить что имя папки профиля пользователя совпадает с user_fio
т.е. userN=user_fio
может можно как подсчитать кол-во символов в названии папки userN
добавить туда кол-во символов corp/userN/ и после второго знака / добавить m_

или искать строки с текстом realuserName
запомнить что папка в которой находимся называется userN
и после userN/добавить m_

или второй символ / отлавить в строке содержащей realuserName
и поставить после него m_

Отправлено: 08:21, 17-07-2017 | #2



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

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


Аватара для batyaPS

Ветеран


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

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


прошу..

можно на повершеле

Отправлено: 09:31, 17-07-2017 | #3


Аватара для batyaPS

Ветеран


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

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


ап
прошу помощи

Отправлено: 10:10, 18-07-2017 | #4

x0r x0r вне форума

Забанен


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

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


возьми программу и сделай поиск и замену. PM

Отправлено: 11:23, 18-07-2017 | #5


Аватара для batyaPS

Ветеран


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

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


программа с задачей 2 справиться не может
не хватает возможности получать переменную и использовать её при замене

Отправлено: 16:32, 18-07-2017 | #6

x0r x0r вне форума

Забанен


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

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


ну а если так:
найти:
Код: Выделить весь код
corp/user_*[]/
заменить:
Код: Выделить весь код
corp/user_%1/m_
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:32, 19-07-2017 | #7


Аватара для batyaPS

Ветеран


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

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


работает
.realuserName", "corp/*[]/
.realuserName", "corp/%1/m_




может ещё подскажешь как заменить
.useremail", "user@oooo.aaaaa.ru");
на
.useremail", "user@aaaaa.ru");

т.е. жирное удалить
user и aaaaa.ru перменные
одинаковое для всех oooo.

вроде так получается
.useremail", "*@oooo.
.useremail", "%1@

Последний раз редактировалось batyaPS, 19-07-2017 в 18:38.


Отправлено: 18:32, 19-07-2017 | #8

x0r x0r вне форума

Забанен


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

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


ну вроде так, да ;-)

зы. Всё она справляеццо. Ничего другого подобного нету(я не видел). Прога уникальна и для таких случаев must have! чем писать скрипты в языках кот. для сложных операций с текстом не особопредназначены (cmd\bat ) - лучше взять её. Replace Studio Pro (Search and Replace)
Просто RTFM и понять синтаксис её регулярных выражений. В справке всё есть, с примерами. Он, синтаксис, отличается от JS, как и ситаксис RexEx в TC и проч. случаях.

Последний раз редактировалось x0r, 19-07-2017 в 21:53.


Отправлено: 20:45, 19-07-2017 | #9


Ветеран


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

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


x0r, зачем учить новый странный синтаксис регулярок, если масса продуктов поддерживает стандартный?
Хочешь - в powershell пишешь:
Код: Выделить весь код
'user_pref("mail.server.server1.realuserName", "corp/user_fio/imya_yacika");' -replace 'corp/user_.*/', '$&m_'
Хочешь - то же самое в форме замены в Notepad++ указываешь

Отправлено: 22:56, 19-07-2017 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Поиск и замена файлов. Drotik Скриптовые языки администрирования Windows 2 24-04-2014 18:07
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файла на разных дисках Gawr33 Скриптовые языки администрирования Windows 11 23-04-2011 23:09
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файлов на разных дисках 4zz Скриптовые языки администрирования Windows 2 21-02-2011 16:07
Разное - поиск и замена ansslecter Программное обеспечение Windows 1 06-07-2010 16:03
[решено] FileSetAttrib: Проблема с рекурсией snoitaleR AutoIt 20 14-09-2009 14:47




 
Переход