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

Показать сообщение отдельно

Аватара для 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