Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
demudrol
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 21
#1

Разбор содержимого EML-файла - CMD/BAT

02.10.2012, 11:00. Просмотров 1271. Ответов 4
Метки нет (Все метки)

Добрый день.
Смысл таков: Mozzila Thunderbird сохраняет письмо в определенную папку (поставил расширение txt, если cmd умеет просматривать по расширению eml, то было бы удобнее).
Хотелось чтобы скрипт мониторил папку и как только появляется файл просматривал его, находил то что написано после Computer name: и записывал в значение
Сейчас это письмо выглядит так:
</o:shapelayout></xml><![endif]--></head><body lang=3DRU link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span =
lang=3DEN-US>Computer name: GO1-0089<op></op></span></p><p =
class=3DMsoNormal><op>&nbsp;</op></p><p class=3DMsoNormal><span =
style=3D'mso-fareast-language:RU'>=F3 =

http://www.cyberforum.ru/cmd-bat/thread268869.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2012, 11:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Разбор содержимого EML-файла (CMD/BAT):

Редактирование содержимого текстового файла
Доброе время суток, Уважаемые знатоки! Такая ситуация есть txt файл (допустим...

Редактирование содержимого текстового файла
Есть текстовый файлик типа: первая строка вторая строка третья строка...

Изменение содержимого файла hosts
Возможно ли с помощью cmd-файла изменить содержимое файла Hosts, в частности...

Динамический вывод содержимого файла
Выводит в окно отображения консоли содержимое файла в режиме реального времени...

Объяснение содержимого bat-файла
Прошу расшифровать(объяснить) содержимое файла. Нанесет ли он какой-нибудь вред...

4
sov44
1758 / 742 / 127
Регистрация: 09.04.2011
Сообщений: 1,313
02.10.2012, 17:49 #2
demudrol, пробуйте:
Bash
1
2
3
4
5
6
7
8
@echo off
setlocal EnableDelayedExpansion
:: ищем в файле 22.txt. (можно сохранять и в оригинальном расширении)
for %%f in (22.txt) do (
  For /F "tokens=1-2 delims=:<" %%A In ('findstr /C:"Computer name" %%f') do set LastRow=%%B
  echo Имя компутера - !LastRow!
)
pause
п.с. не стал заморачиваться и чуть-чуть поправил скрипт Dragokas http://www.cyberforum.ru/cmd-bat/thread661418.html
2
demudrol
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 21
08.10.2012, 12:09  [ТС] #3
sov44, спасибо, работает!

Может кто подсказать как можно сделать мониториг папки?

Если брать выше представленный скрип, чтобы вместо 22.txt подставлялось значение появившегося файла.

Добавлено через 41 минуту
И еще вопрос, если файл все же находится как присвоить переменной его имя?
if exist IT-*.txt set TextName=IT-*.txt
При таком он просто вписывает IT-*.txt
0
sov44
1758 / 742 / 127
Регистрация: 09.04.2011
Сообщений: 1,313
08.10.2012, 13:09 #4
demudrol, пробуйте:
Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir /b/s "C:\Проба\*.txt"') do (
set file=%%a
set nam=%%~na
if defined file (
for %%b in (%%a) do (
for /f "tokens=1-2 delims=:<" %%c In ('findstr /C:"Computer name" %%b') do set LastRow=%%d
  echo Файл !nam! имя компутера - !LastRow!
)))
pause
0
demudrol
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 21
08.10.2012, 13:47  [ТС] #5
sov44, попробую если мой вариант не подойдет.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
setlocal EnableDelayedExpansion
 
:start 
ping -n 5 -w 60 localhost>nul
if not exist IT-*.txt goto start
if exist IT-*.txt goto circle
 
:circle
for /r %%i in (*.txt) do set Textname=%%i
goto run
 
:run
for %%f in (%TextName%) do (
  For /F "tokens=1-2 delims=:<" %%A In ('findstr /C:"Computer name" %%f') do set LastRowCN=%%B
)
for %%f in (%TextName%) do (
  For /F "tokens=1-2 delims=:<" %%A In ('findstr /C:"Program:" %%f') do set LastRowP=%%B
)
if %LastRowP%==Firefox set ProgramInstall=msiexec /i \\Path\stuff\FirefoxESR-10.0.6-ru.msi /quiet
 
:install
Ping %LastRowCN%
if %errorlevel%==1 goto circle
if %errorlevel%==0 do D:\stuff\psexec.exe \\%LastRowCN% -u -p  -n 10 %ProgramInstall%
Скрипт определяет файлы и подпихивает в переменную первое значение.
Подскажите, как можно настроить чтобы если ping не доходит до компьютера то он переходил к другому файлу или же если psexec не отрабатывал то он тоже переходил бы к другому
0
08.10.2012, 13:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2012, 13:47
Привет! Вот еще темы с решениями:

Построчное чтение файла и разбор каждой 6-ой строки для получения и использования определённых данных
Добрый вечер! Необходимо прочитать текстовый файл в котором каждая 6-я строка...

Запись содержимого текстового файла в переменную
Здравствуйте, подскажите пожалуйста как мне считать все данные из txt файла в...

Преобразование содержимого текстового файла в HTML-таблицу
Приветствую всех, подскажите пожалуйста через какие команды можно преобразовать...

Способы отображения содержимого текстового файла в консоли
Всем привет. Помогите пожалуйста. Нужно отобразить содержимое текстового файла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru