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

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

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

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


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

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


Здравствуйте!

Помогите написать батник для добавление файлов из папки в архивы не более 5mb и отправки почтой каждой части архива в отдельном письме. Желательно через Outlook. Если такое возможно!

С архивированием файлов и разбиением на части вроде справился (код ниже), а вот с отправкой застрял.

Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
 
:: Каталог, в котором лежат файлы для архивирования
set fPath=C:\111
 
:: Путь к каталогу куда будут попадать архивы
set toPath=c:\222\
 
:: Путь к архиватору
set rar="C:\000\rar.exe"

set ArhName=Arhiv 

:: Архивирование
  %rar% a -ep1 -v5m -agYYYYMMDD "%toPath%\%ArhName%.rar" "%fPath%\*.*"

goto exit

Отправлено: 11:26, 05-12-2013

 

Ветеран


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

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


Цитата sharovyy:
а вот с отправкой застрял. »
Поищите по разделу примеры использования «blat.exe».

Отправлено: 16:49, 05-12-2013 | #2



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

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


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


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

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


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

Код: Выделить весь код
for /f "delims=" %%i in ('dir /b /a-d %toPath%') do (
"C:\Program Files\Microsoft Office\Office12\Outlook.exe" /a "c:\222\XXX"
)
Т.е. что написать вместо XXX? Если указать конкретное имя файла, то письма создаются с первым файлом и папки.
И создается их столько штук, на сколько разбился архив. Т.е. почти как нужно мне, только нужно как-то указать на все файлы в папке, а не конкретный.

Отправлено: 01:34, 06-12-2013 | #3


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


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

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


Всё, сделал.

Теперь задача удалить файлы из первой и архивы из второй папок...

И... получилось!

Последний раз редактировалось sharovyy, 06-12-2013 в 03:12.


Отправлено: 02:01, 06-12-2013 | #4


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


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

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


А можно как-то сделать чтобы при нажатии правой кнопки мыши на файле и выборе пункта Отправить -> Адресат этот файл если он более 5mb бился на архивы и открывались несколько готовых к отправке писем с вложенными частями?

Отправлено: 06:18, 06-12-2013 | #5


Аватара для Oceanel

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


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

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


Вложения
Тип файла: zip через Outlook по 5 Мб.zip
(157.3 Kb, 44 просмотров)

Цитата sharovyy:
при нажатии правой кнопки мыши на файле и выборе пункта Отправить -> »
Только не адресат, а создать .bat и на него ярлык в "%AppData%\Microsoft\Windows\SendTo\", код этого батника:
читать дальше »

Код: Выделить весь код
@echo off
title Отправить с помощью Outlook по 5 Мб
setlocal enabledelayedexpansion


set topath=%~f1 [отправка через Outlook]
set topathfile=%~f1 [отправка через Outlook]\%~nx1
set $date=%date:~6,4%-%date:~3,2%-%date:~0,2%
set allselefiles=%*


rem ----------- Проверки --------------
rem есть ли WinRar, то упаковывать с помощью его
if exist "c:\Program Files\WinRAR\rar.exe" (set arxiverpath=c:\Program Files\WinRAR\rar.exe& set switch=rar& goto :check2)
if exist "c:\Program Files (x86)\Total Commander\Plugins\arc\Rar.exe" (set arxiverpath=c:\Program Files ^(x86^)\Total Commander\Plugins\arc\Rar.exe& set switch=rar& goto :check2)
rem есть ли 7z, то упаковывать с помощью его
if exist "c:\Program Files\7-Zip\7z.exe" (set arxiverpath=c:\Program Files\7-Zip\7z.exe& set switch=7z& goto :check2)
if exist "\\server\утилиты\7z\7za.exe" (set arxiverpath=\\server\утилиты\7z\7za.exe& set switch=7z& goto :check2)
color 0C& echo.& echo   Не найден архиватор!& pause>nul& exit
:check2
rem есть ли Outlook 14 или Outlook 15
if exist "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE" (set outlookpath=C:\Program Files ^(x86^)\Microsoft Office\Office14\OUTLOOK.EXE& goto :check3)
if exist "C:\Program Files (x86)\Microsoft Office 15\root\office15\outlook.exe" (set outlookpath=C:\Program Files ^(x86^)\Microsoft Office 15\root\office15\outlook.exe& goto :check3)
color 0C& echo.& echo   Не найден Outlook!& pause>nul& exit
:check3
rem есть ли есть ли временная папка
if exist "%~nx1 [отправка через Outlook]" (
    echo.
    color 0C
    echo   Существует временная папка с архивами:
    echo "%topath%"
    echo.
    echo При необходимости удалите папку вручную и повторите...
    pause>nul
    exit
  )
rem ----------------------------------


rem ---- Алгоритм для упаковки выбранных файлов/папок и отправки через Outlook по 5 Мб, сокращенный ----
echo ------------- Начало ---------------


echo   1/5 Создаем временную папку
rem for /f "delims=" %%i in (%1) do echo %%~dpi
rem echo %cd%
md "%~nx1 [отправка через Outlook]"
if %errorlevel% GTR 0 (color 0C& echo.& echo   Ошибка создания временной папки.& pause>nul& exit)
echo ..создана
echo.


echo   2/5 Выбранные файлы упаковываем по 5мб в нее
echo начало упаковки %switch%..
if /I "%switch%"=="rar" ("%arxiverpath%" a -m5  -rr3p -dh -ri10:0 -idq -v5000000b -ilog"%~nx1_%$date%_%switch%.log" "%topathfile%.rar" %allselefiles%)
if /I "%switch%"=="7z" ("%arxiverpath%" a "%topathfile%.7z" %allselefiles% -v4000000b -v5000000b > "%~nx1_%$date%_%switch%.log")
echo ..упаковка завершена
echo.


echo   3/5 Подсчет частей архива упакованных файлов
for /f "delims= " %%i in ('dir /a-d "%topath%"^|find /I "файлов"') do set countfiles=%%i
rem проверка на большое количество частей для отправки
:arxfil0
set SURE=
if not %countfiles% GTR 5 (
    goto :arxfil1
  )
set /p SURE=Получено %countfiles% частей. Продолжить? [y/n]: 
if /I "%SURE%"=="y"   goto :arxfil1
if /I "%SURE%"=="n"   echo.& goto :deldir0
rem set /p SURE= Не правильный ввод, повторите еще раз:
echo Не правильный ввод, нажмите любую клавишу чтобы повторить еще раз...
pause>nul
goto :arxfil0
:arxfil1
echo ..всего частей письма = %countfiles%
echo.


echo   4/5 Создание писем и вложение упакованных файлов
set currfile=0
for /f "delims=" %%i in ('dir /b /a-d "%topath%"') do (
    set /a currfile+=1
    echo Формирование "%%i" ^(часть !currfile! из %countfiles%^), ждите...
    start /WAIT "" "%outlookpath%" /c ipm.note /a "%topath%\%%i"
    ping -n 3 localhost>nul
  )
echo.


:deldir0
echo   5/5 Удаление временной папки
rd /s /q "%~nx1 [отправка через Outlook]"
del /q "%~nx1_%$date%_%switch%.log"
echo ..удалена
echo.
echo.


echo ------------ Завершено -------------
echo.
echo                                    Киев, 2014
ping -n 11 localhost>nul
rem exit


В архиве готовые файлы + скрипт установки и скрины внешнего вида. Работает с несколькими выделенными папками и файлами.
Проверено на Win7x64, WinRAR 4.0, 7z 9.20 и Outlook 2010.

Последний раз редактировалось Oceanel, 15-05-2014 в 09:54. Причина: правка ошибок

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

Отправлено: 16:18, 14-05-2014 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Создание кластера и взлом rar-архивов Саботаж Хочу все знать 7 11-12-2012 21:06
Создание SFX-архивов для автоматической установки FlexAdmin Автоматическая установка приложений 14 11-03-2012 13:51
BFAF 7zip Creator - создание SFX архивов с расширенными настройками Medic84 Автоматическая установка Windows 2000/XP/2003 33 28-02-2012 13:53
Разное - Создание LOG'a системы и отправка его по почте. FreshMen85 Microsoft Windows 7 0 08-08-2011 10:08




 
Переход