Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6

Модерирует : KLASS, IFkO

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 6
(часть 1, часть 2, часть 3, часть 4, часть 5)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<<>>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mike345S

    Цитата:
    можно пример скрипта?

    Ну что-то вроде этого (ненужное убрать)
     
    Добавлено:
    Надежность, правда, не ахти (по моим тестам)

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 15:36 04-05-2009
    mike345S



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush, спасибо. Вечером попробую.
    А в чем проблемы с надежностью?

    Всего записей: 550 | Зарегистр. 31-01-2006 | Отправлено: 16:51 04-05-2009
    basstard

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну вот, полноценный скриптик для отправки почты:

    Код:
    @echo off
    setlocal enabledelayedexpansion
    rem ============================================================================
    rem ---- Путь к файлу с текстом сообщения ------------------
    set message=message.txt
    rem ---- Тема в кавычках -----------------------------------
    set subject="тема сообщения"
    rem ---- Адрес отправителя ---------------------------------
    set fname=user@mail.ru
    rem ---- Имя пользователя ----------------------------------
    set uname=user@mail.ru
    rem ---- Пароль к ящику ------------------------------------
    set pword=MySuperSecretPassword
    rem ---- Сервер SMTP ---------------------------------------
    set serverSMTP=smtp.mail.ru
    rem ---- Порт SMTP -----------------------------------------
    set portSMTP=25
    rem ============================================================================
    color 1f
    cd "%~dp0"
    set /a totalcount=0
    set onelist=not_exist
    for %%j in ("%~dp0list-*.txt") do (
        set /a totalcount=!totalcount!+1
        set onelist="%%j"
    )
    if !totalcount!==0 (
        cls
        echo.
        echo Ни одного списка адресов не найдено.
        echo.
        pause
        exit
    )
    if !totalcount!==1 (
        set maillistchoice=!onelist!
        goto attachline
    )
    cls
    echo.
    echo Укажите список адресов, по которым следует отправить сообщение:
    echo.
    set /a listcount=0
    for %%i in ("%~dp0list-*.txt") do (
        set /a listcount=!listcount!+1
        if !listcount! leq 10 (
            set filename=%%~ni
            set listname=!filename:~5!
            set /a listnum=!listcount!-1
            set maillist{!listcount!}="%%i"
            echo     !listnum! - !listname!
            set choiceargument=!choiceargument!!listnum!
            if !listcount!==1 (
                set choiceargument=!listnum!
            )
        )
    )
    echo.
    cd .
    choice /c !choiceargument! /n /m "Введите цифру, соответствующую вашему выбору..."
    set /a listchoice=!errorlevel!
    set maillistchoice=!maillist{%listchoice%}!
    :attachline
    set attachlist=
    set /a attachcount=0
    if not {%1}=={} (
        for %%g in (%*) do (
            set /a attachcount=!attachcount!+1
            set attachlist=!attachlist!,%%g
            if !attachcount!==1 (
                set attachlist= -attach %%g
            )
        )
    )
    cd "%~dp0"
    cls
    blat !message! -tf !maillistchoice! -subject !subject! -serverSMTP !serverSMTP! -f !fname! -portSMTP !portSMTP! -u !uname! -pw !pword!!attachlist!
    echo.
    pause
    exit

    теперь он поддерживает списки рассылки и отправляет неограниченное количество вложений.
     
    чтобы воспользоваться списком рассылки, нужно в той же папке, где лежат скрипт и blat.exe
    создать текстовый файл с именем list-<Имя списка рассылки> например,
     
    list-Контакы по работе.txt
    list-Собутыльники.txt
    list-Семья.txt
     
    в каждый такой файл следует добавить один или несколько (неограниченно)
    адресов получателей в одну строку, без пробелов, через запятую
    напр.: user1@gmail.com,user2@rambler.ru,user3@yahoo.com
    при запуске скрипт покажет все найденные списки
    и ненавязчиво поинтересуется,
    по какому из них следует разослать сообщение
    всего таких списков может быть до 10
    если же список всего один, то никаких лишних вопросов скрипт задавать
    не будет, сразу используя единственный существующий
    таким образом, если адресат всего один, нужно создать один список рассылки и забить в него один адрес.
     
    теперь вложения: с ними вообще ничего писать не требуется, просто выделить
    несколько файлов одновременно и перетащить их на иконку скрипта
    (или создать для скрипта ярлык и перетащить на ярлык)
    все эти файлы будут прикреплены к сообщению
     
    файл с текстом сообщения может лежать где угодно, путь к нему вместе с настройками аккаунта прописываются в самом скрипте
     
    чтобы разговаривал не кракозябрами, сохранить в dos 866.
    в архиве Ссылка сам скрипт в правильной кодировке, примеры списков рассылки
    и пример файла с текстом сообщения

    Всего записей: 58 | Зарегистр. 05-08-2008 | Отправлено: 18:31 04-05-2009
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush
    о спасибо,
    здесь выходит без дополнительных программа, правильно?

    Цитата:
    А в чем проблемы с надежностью?  

    +1
     
    basstard
    это же ведь тоже без дополнительных программ?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 18:34 04-05-2009 | Исправлено: lorents, 18:36 04-05-2009
    basstard

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    это же ведь тоже без дополнительных программ?
     
    нет, это скрипт для blat.exe

    Всего записей: 58 | Зарегистр. 05-08-2008 | Отправлено: 18:43 04-05-2009
    Uraanfgh56



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток.  
     
    Возможно ли написать скрипт для рассортировки файлов ( в моём случае-это архивы с программами) по разным папкам ?  
     
    Сам я не разбираюсь в программировании, поэтому и написал здесь.  
     
    Единственно я так понимаю для рассортировки по разным папкам в файле (внутри файла-архива) должен быть какой-то идентификатор (буква, цифра), который будет батником сопостовляться с идентификатором внутри папки и соответственно перемещать файл в нужную папку. Хотя возможно я и не прав.  

    Всего записей: 3567 | Зарегистр. 03-11-2007 | Отправлено: 20:57 04-05-2009
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    А в чем проблемы с надежностью?

    Ну конфигурация через удаленный сервер - это все-таки возможные проблемы связи.  
     
    Добавлено:
    lorents

    Цитата:
    здесь выходит без дополнительных программа, правильно?  

    Правильно.

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 00:20 05-05-2009
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Uraanfgh56

    Цитата:
    я так понимаю для рассортировки по разным папкам в файле (внутри файла-архива) должен быть какой-то идентификатор (буква, цифра), который будет батником сопостовляться с идентификатором внутри папки и соответственно перемещать файл в нужную папку

    Может будет проще создавать папки с именем архивов и перемещать в них архивы?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:38 05-05-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Uraanfgh56
    Звучит типа сделай то не знаю что.Сначала определись с сортировкой и выложи примеры что имеешь и что хочется.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 08:05 05-05-2009
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush
    а можно отдельно сделать, чтобы вызывалась программа для отправки писем (например Microsoft Office Outlook), которая стоит по умолчанию у юзера, с введенными темой, прикрепленным файлом и т.д.?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 08:08 05-05-2009 | Исправлено: lorents, 08:41 05-05-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents можно. sendm.exe найти удалось тут
    http://softsearch.ru/programs/11-100-file2mail-versija-download.shtml
     
    не знаю как оффисным аутлюком, а у экспресса начиная с какой-то версии при создании таким методом писем выпрыгивает запрос от безопастности - типа ты это на самом деле хочешь отправить или это вирус шалит.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:52 05-05-2009
    triano

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!  
    Проблемка такая: написал bat-файл из которого выполняется сценарий подключения к ftp- серверу и перрегонки файлов туда и обратно. Хотелось бы ещё чтобы при копировании файлов отображался индикатор копирования в виде точек или чёрточек или отображался процент выполнения.  
    Какими командами это можно сделать?

    Всего записей: 21 | Зарегистр. 31-03-2008 | Отправлено: 12:34 05-05-2009
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents

    Цитата:
    а можно отдельно сделать, чтобы вызывалась программа для отправки писем (например Microsoft Office Outlook), которая стоит по умолчанию у юзера, с введенными темой, прикрепленным файлом и т.д.?

    Ну ты, наверное, читал на форуме ММВ, я там давал пример. Но без аттача. Аттач стандартно для всех прог не крепится.

    Код:
    mailto:адрес?cc=кому_копию;2-ю_копию;и_т.д.&subject=тема&body=текст_сообщения

    Пробелов быть не должно (использовать %20). Ну и некоторые служебные знаки надо заменять.  

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:59 05-05-2009
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    triano
    в фтп-скрипте напиши hash

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 16:30 05-05-2009
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ну ты, наверное, читал на форуме ММВ, я там давал пример. Но без аттача. Аттач стандартно для всех прог не крепится.

    если честно то не читал, но как сайт откроется прочту

    Цитата:
    mailto:адрес?cc=кому_копию;2-ю_копию;и_т.д.&subject=тема&body=текст_сообщения  

    это я знаю, значит с прикрепить ничего не выйдет, ну ладно

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 16:52 05-05-2009
    Bratella

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите плиз.
     
    Есть программка которая инсталлируется с сетевой шары \\server\my program
    Эта программа использует ключики при запуске для автоатизации.
    Хочу написать батник которые ее запускает с конкретными ключиками
     
    \\server\my program\program.exe /K1 /K2
     
    Но она не хочет запускаться. Так как текущая папка с:\doc ...
    А сменить папку на сетевую шару не могу, так как команда Cd не понимает ковычки, и это не срабатывает:
     
    cd "\\server\my program\"
    program.exe /K1 /K2
     
    Как обойти это ограничение ?

    Всего записей: 157 | Зарегистр. 05-06-2003 | Отправлено: 12:44 06-05-2009
    smirnvlad

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bratella

    Цитата:
    Как обойти это ограничение ?

     
    можно сразу писать
     

    Код:
    "\\server\my program\program.exe" /K1 /K2

     
    но при этом рабочая папка останется c:\doc...
     
    если же рабочую папку нужно задавать, надо использовать не батник, а например .vbs

    Код:
     
    Set Shell = WScript.CreateObject("WScript.Shell")
    Shell.CurrentDirectory = "\\server\my program\"
    Shell.Run ("program.exe /K1 /K2")
     

    а если в параметрах или названии программы есть пробелы, то заключать в две двойные кавычки

    Код:
     
    Set Shell = WScript.CreateObject("WScript.Shell")
    Shell.CurrentDirectory = "\\server\my program\"
    Shell.Run ("""another program.exe"" ""/k key1"" /key2")
     

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 14:19 06-05-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bratella
    А это не работает?

    Код:
     
    pushd "\\Server\folder"
    program /key1 /key2
    popd
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:33 06-05-2009
    Uraanfgh56



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka
     
    Тут смысл немного другой - нужно рассортировать архивы программ, которые относятся к разным категориям, т.е все вперемешку - органайзеры, браузеры, проигрыватели и т.д . и т.п по папкам - архивы где органайзеры в одну папку-"органайзеры", проигрыватели в папку "проигрыватели"  и т.д и т.п , вот для этих целей и нужна автоматизация bat-ком или еще чем-то другим ...

    Всего записей: 3567 | Зарегистр. 03-11-2007 | Отправлено: 14:55 06-05-2009
    Bratella

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad

    Цитата:
    можно сразу писать  

    -так не получается, так как проге нужны файлы в дириктории.
     

    Цитата:
    не батник, а например .vbs  

    то что надо.
     
    01MDM
     
    pushd
    popd
    интересные команды, даже не знал о таких
     
    Добавлено:
    Спасибо

    Всего записей: 157 | Зарегистр. 05-06-2003 | Отправлено: 15:46 06-05-2009
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru