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

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

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

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    mitrichbel

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    всё в порядке
     
    Код вечером попробую, отпишусь. Спасибо

    Всего записей: 1380 | Зарегистр. 30-04-2003 | Отправлено: 15:47 17-07-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как получить почту с gmail.com?

    Код:
     
    getmail -s pop.gmail.com -u MyId -pw Mypass -port 995
    :: такой порт указан на офсайте (не 110)
     

    С mail.ru все OK. В настройках гмайл (на сайте) включен протокол "POP"
    Конечно не принципиально, можно и через браузер, и через клиент, но составлять батник с отсеканием лишнего-ненужного во всех входящих и потом натолкнуться на засаду...  

    Код:
     
    Error: Connection to mailserver was dropped.
    POP3 server error while connecting: unknown
     

     
    ?
     
    Или сам getmail устарел. Какие еще есть консольные mailrecipients?

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:06 17-07-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    GMail отдает почту по безопасное соединение по спецпорту TSL и просто сменить с 110 на 995 - не имеет смысла

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:25 17-07-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Что придумать? Что это за секретный протокол?

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:28 17-07-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Протокол не секретный. Просто нужен клиент, который поддерживает этот протокол. Насколько я вижу (пробежался по справке), getmail этот протокол не поддерживает.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:39 17-07-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    С ходу не нашел такого клиента (именно с поддержкой командной строки) под винду
     
    Добавлено:
    Стоп
    нашел  
    http://www.dataenter.co.at/products/popbeamer.htm

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:55 17-07-2007 | Исправлено: KapralBel, 16:57 17-07-2007
    mitrichbel

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    В ходе выполнения в консоли неоднократно были сообщения  
    "..." не является внутр. или внешней командой, исп. программой или пакетным файлом.
    На месте многоточия - разные слова и буквосочетания латинскими буквами. По одному-два раза появлялись "Ошибка в синтаксисе команды", "Отказано в доступе", "Синтаксическая ошибка в имени файла, имени папки или метке тома", "Не удается найти указанный файл".  
    В конце концов "Непредвиденное появление: <<" и "Непредвиденное появление: ||", "Ошибка в синтаксисе команды" и всё.
     
    Выполнялся батник очень долго - около часа (AMD 2200, 512Mb, XP) разбирался с двумя десятками файлов общим объёмом в мегабайт. Я вручную сделал бы гораздо быстрее..

    Всего записей: 1380 | Зарегистр. 30-04-2003 | Отправлено: 21:49 17-07-2007
    TCPIP

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Спасибо! И ведь прибивал же специально, но видимо был недостаточно упорен...
    Есть дополнительный вопрос: как при этом обработать файлы с точками в именах?  
    Например, файлы: xx.Name.rar
    Данный бэтч их не обрабатывает, обрабатывая лишь файлы вида Name.rar и Name.part01.rar.

    Всего записей: 4667 | Зарегистр. 31-01-2003 | Отправлено: 01:06 18-07-2007 | Исправлено: TCPIP, 02:57 18-07-2007
    Maza Faka



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

    Цитата:
    "Непредвиденное появление: <<" и "Непредвиденное появление: ||"

     
    Ммм... попробуй так:

    Код:
     
    @echo off
    chcp 1251>nul
    set folder=c:\test
     
    for /f "tokens=1,2,4*" %%a in ('
    dir /t:w "%folder%\*.txt" ^| find /i ".txt"') do (
    if "%%d"=="" (call:mod %%a %%b %%c) else (call:mod %%a %%b "%%c %%d")
    )
     
    goto :eof
     
    :mod
    set m_time=%~1 %~2:00
    set m_time=%m_time:.=-%
    if exist %folder%\tmp.txt del /f /q tmp.txt
     
    for /f "delims=" %%f in (
    'more "%folder%\%~3"') do echo "%%f" | find /i "ненужный текст">nul || echo %%f>> %folder%\tmp.txt
     
    del /f /q "%folder%\%~3"
    ren %folder%\tmp.txt %3
    nircmd setfiletime "%folder%\%~3" "" "%m_time%"
     

    Работает со спец-символами (! & > < | ^). Если тексты в DOS кодировке, то убери 2-ю строчку(chcp 1251>nul).
    Если текстовые файлы большие то и обрабатывать их батник будет долго. Кстати, выложи фрагмент проблемного текста, который нужно обработать.
      А вообще смотри в сторону "SED", будет быстрее и без ошибок.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:04 18-07-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    TCPIP
    Это том многотомного архива или отделный архив?
     
    Добавлено:
    Если часть, то как называются остальные (по какой схеме)

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 08:08 18-07-2007
    mitrichbel

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    что такое SED?  Все файлы в 1251, по большей части в них текст на русском.
    Цитата:
    Если текстовые файлы большие то и обрабатывать их батник будет долго
    Я как-то привык, что компьютер способен выполнять рутинную работу быстрее человека..

    Всего записей: 1380 | Зарегистр. 30-04-2003 | Отправлено: 09:42 18-07-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mitrichbel
    Ты пробовал последний код?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:23 18-07-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    почему бы не использовать more вместо echo?
    он корректно пашет со спецсимволами (детально смотреть и тестить код нет времени)
     
     
    Добавлено:
    ок вижу ты уже его используешь

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:17 18-07-2007
    mitrichbel

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    Последний код задачу сделал. Примерно за полчаса он справился с 18 файлами общим объёмом 912 Кб. Pentium4 3.0 MHz, 512Mb, WinXP
     
    А всего таких файлов около тысячи, общий объём - порядка 30 Mb.
     
    В процессе выполнения в консоли два раза было
    "..." не является внутр. или внешней командой, исп. программой или пакетным файлом.  

    Всего записей: 1380 | Зарегистр. 30-04-2003 | Отправлено: 13:09 18-07-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mitrichbel
    В общем ты неправильно выбрал среду обработки
    батнички очень медленны по своей природе
     
    Надо писать на компилируемых языках

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:19 18-07-2007
    mitrichbel

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    посоветуйте?

    Всего записей: 1380 | Зарегистр. 30-04-2003 | Отправлено: 15:39 18-07-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mitrichbel
    C, C++, C#, Java
    Если серьезно, то утилита sed (stream editor, ее упоминал Maza Faka) может делать достаточно серьезную обработку текста. Я не умею с ней работать, но сходу нашел в гугле пример, убирающий из текста пустые строчки.
    Вот линк на страничку sed-a - http://gnuwin32.sourceforge.net/packages/sed.htm
    Или может у нас здесь найдутся специалисты, знающие, как с ней работать.


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:52 18-07-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mitrichbel
    По поводу SED-а, тебе может помочь igor_andreev, только вот, что давно не видно его в топике.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 16:44 18-07-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mitrichbel
    В приват ему стукни (igor_andreev) на днях он в другом топике отметился

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:04 18-07-2007
    mitrichbel

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Maza Faka
    KapralBel
    Спасибо, буду пробовать

    Всего записей: 1380 | Зарегистр. 30-04-2003 | Отправлено: 17:24 18-07-2007
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru