Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Надо собрать со всех компов адреса почты и пароли от них

Пользователь


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


Конфигурация

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


Друзья, еще только начал осваивать скриптовые языки (а задачи уже надо решать) помогите пожалуйста кодом в следующей ситуацией.
Надо собрать со всех компов адреса почты и пароли от них.
Есть программка Mail PassView v1.77 с возможностью доставать эту инфу и сохранять в файл (правда не только адрес и пароль но и доп. инфу)
Пример:
читать дальше »

==================================================
Name : user
Application : MS Outlook 2002/2003/2007/2010
Email : user@mail.ru
Server : mail.local
Server Port :
Secured : No
Type : POP3
User : user@mail.ru
Password : qwerty
Profile : Outlook
Password Strength : Strong
SMTP Server : mail.local
SMTP Server Port :
==================================================


нужно вытащить информацию из созданного программой файла (info.txt) значения строчек User: и Password:
и поместить в новый файл newfile.txt в таком виде:

user@mail.ru qwerty

Спасибо!

ПС
Причем в таком файле info.txt может быть информация о нескольких ящиках на одном компьютере..

Отправлено: 14:21, 26-04-2013

 

Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off

Set info=info.txt
Set New=newfile.txt

Del "%New%" 2>nul

SetLocal EnableExtensions EnableDelayedExpansion

FOR /F "usebackq delims=" %%s IN ("%info%") DO (
	Set SS=%%s
	Set SS=!SS:User : =!
	If Not "%%s"=="!SS!" Set Log=!SS!&Echo !Log!
	Set SS=%%s
	Set SS=!SS:Password : =!
	If Not "%%s"=="!SS!" Echo !Log! !SS! >>"%New%"
)
Я догадываюсь, что файлов info.txt может быть много, но Вы не рассказали нам, где они хранятся или как их зовут

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 15:43, 26-04-2013 | #2



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

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


Пользователь


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

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


Спасибо, сейчас попробую)
Допустим файлы info.txt создаются в общей сетевой папке, с именем компьютера на котором запускался bat
например:
\\server\mailinfo\%computername%.txt


Как изменится в таком случае код?


megaloman, код не срабатывает... может я делаю что то не правильно:
я сделал bat с этим кодом поместил в папку где лежит info.txt запустил newfile.txt не создался.

Последний раз редактировалось timbird, 26-04-2013 в 16:13.


Отправлено: 15:51, 26-04-2013 | #3


Ветеран


Contributor


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

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


timbird, Где у Вас расположен файлы и батник? Если на сетевом ресурсе, как Вы написали, туда же хотите (или еще куда-то) поместить newfile.txt, то для правильной работы надо указать полный путь файлов, при этом не важно, где батник находится.

Set info=\\server\mailinfo\info.txt
Set New=\\server\mailinfo\newfile.txt

Если в папке \\server\mailinfo\ только файлы с информацией по рассматриваемой проблеме, то никакой сложности организовать просмотр всех этих файлов.

Если там еще какие-то файлы, тогда надо иметь какой-то критерий их выбора. Если newfile хотите поместить туда же, где и обрабатываемые, то лучше его назвить не newfile.txt а, например, newfile.log. Или разместить в другой папке.
Если в путях (именах) файлов, которые вы указываете в батнике, содержатся русские буквы, тогда батник должен быть написан в 866 кодировке.
Вот вариант, когда Вы хотите просматривать много файлов (при условии, что в папке с расширениями .txt все информационные и иных с этим расширением нет)
Код: Выделить весь код
@Echo Off

Set info=E:\ddddd\Test 1\*.txt
Set New=E:\ddddd\Test 1\newfile.log

Del "%New%" 2>nul

SetLocal EnableExtensions EnableDelayedExpansion

For %%f In ("%info%") Do (

   FOR /F "usebackq delims=" %%s IN ("%%f") DO (
	Set SS=%%s
	Set SS=!SS:User : =!
	If Not "%%s"=="!SS!" Set Log=!SS!
	Set SS=%%s
	Set SS=!SS:Password : =!
	If Not "%%s"=="!SS!" Echo !Log! !SS!>>"%New%"
   )
)
Батник обнаруживает в файлах строки, содержащие "User : " и "Password : " (именно так Вы указали в примере, важен и регистр букв, и все пробелы, важно, что сначала идёт "User : " затем "Password : " - ИМХО, Ваша программа, генерирующая файлы инфо, работает одинаковым образом и данные в файле заносятся единообразно).

Проверено, работает, в том числе и с сетевыми путями.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 29-04-2013 в 18:37. Причина: Корректировка по замечанию timbird

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

Отправлено: 10:21, 27-04-2013 | #4


Пользователь


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

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



megaloman, Я понял почему у меня не срабатывало, при вставке примера в первом сообщении удалились дополнительные пробелы между наименованием строки и значением.
Вот в таком формате на самом деле создается файл:
mail.txt

Надо в коде изменить искомые "User : " и "Password : ", на такие как создаются в файле со всеми пробелами)
Спасибо за пояснения в конце))

Все работает! GENIUS! )

ПыСы

Еще момент может оказаться очень важным:

В конечном файле newfile.log, в конце каждой строчки после пароля добавляется пробел, чтобы было без пробела удаляем его в коде
Код: Выделить весь код
If Not "%%s"=="!SS!" Echo !Log! !SS! >>"%New%"
после !SS!

Спасибо за помощь, megaloman!

Последний раз редактировалось timbird, 29-04-2013 в 12:23.


Отправлено: 11:42, 29-04-2013 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - В MS Outlook 2007/2010 собрать адреса со всех писем в папку "контакты" it-dude Microsoft Office (Word, Excel, Outlook и т.д.) 0 14-01-2013 10:43
Прочее - пароли подключенных компов к локалке не работает r-studio Сетевое оборудование 0 08-10-2012 23:02
Сколько компов надо человеку? ALLY Флейм 33 02-03-2012 19:09
Пароли для всех пользователей Deskin Microsoft Windows NT/2000/2003 10 20-03-2009 09:49
Интернет - Пароли учётных записей почты Windows в Windows Vista pochtaliion Microsoft Windows Vista 0 26-01-2009 00:49




 
Переход