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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MorisA
    смотри в сторону wmic.
    wmic /?
     
    PS. Понятие "железо" слишком широкое.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:44 29-10-2007
    AlessTO

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    Я тут что подумал, а реально сделать прямую запись в файл? Возможно из-за того что процесс+данные жрут память с дикой силой происходит эта ошибка? Проверял несколько раз - файлы на 10 Mb обрабатываются на ура (и очень быстро!), а вот на 34 метра ошибка..

    Всего записей: 253 | Зарегистр. 09-12-2006 | Отправлено: 17:51 29-10-2007
    Nagual



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

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 18:11 29-10-2007
    llirik99

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подрядился тут на один трекер релизером Детский сад, но тем не менее
    Система такая: приходят письма от автоматической рассылки, в которых помимо прочего есть строка:
    ____________
    Прошу раздать: http://хх.хх.ххх.ххх/filename.avi
    ____________
    Ip всегда один и тот же. Я должен скачать и либо зарелизить, либо (если меня опередили) встать на раздачу.
     
    Теперь вопрос: как бы автоматизировать хотя бы первую часть процесса? Как я это вижу: The Bat! определяет письмо по адресу и делает его экпорт в txt в указанное место (это я настроил, работает). Этим же фильтром запускается батник, который выцепляет из тхт ссылку и скармливает её через комстроку Гетрайту или любому другому даунлоадеру.
     
    Вот тут у меня и непонятка - как можно это сделать? Есть простой способ найти в txt выражение "от http://хх.хх до .avi" и подставить его в параметры командной строки?
     
    Заранее спасибо.

    Всего записей: 100 | Зарегистр. 08-04-2006 | Отправлено: 22:04 29-10-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    llirik99
    for /f "delims=" %%a in (input.txt) do (superpuperdownloader %%a)
    пора бы научиться юзать поиск, этот вопрос рассматривался неоднократно

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 22:19 29-10-2007
    Elroir



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

    Цитата:
    в которых помимо прочего есть строка

     
    llirik99

    Код:
     
    @echo off
    chcp 1251>nul
    for /f "tokens=2* delims= " %%a in ('more text.txt ^| find /i "Прошу раздать:"') do downloader %%b
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:27 30-10-2007
    DDDK

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Win XP.
     
     
    if exist d:\1\*.* goto M1
    .........
    .........
    :M1
    move d:\1\*.*  d:\2
     
     
    Если даже в d:\1\ нет файлов, всёравно идёт на M1.  
    Может как-то (как ?) проверить NULL в каталоге ?
     
    В каталоге могут лежать любые файлы (имя и расширение).
     
     
     
     

    Всего записей: 147 | Зарегистр. 07-11-2005 | Отправлено: 09:29 30-10-2007
    KapralBel



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

    Код:
    if exist d:\1\NUL goto M1
     

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 09:39 30-10-2007
    DDDK

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

    Цитата:
    Код:if exist d:\1\NUL goto M1  

     
    Всё по прежнему

    Всего записей: 147 | Зарегистр. 07-11-2005 | Отправлено: 10:02 30-10-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DDDK
    Сорри не так понял задачу
     

    Код:
    @Echo Off
    Set cnt=0
    PushD d:\1\
    FOR %%a In (*.*) Do Set /A cnt=cnt+1
    PopD
    If %cnt% == 0 GoTo :m1

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

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

    Цитата:
    Код:@Echo Off  
    Set cnt=0

     
     

    А проще нельзя проверить - папка пуста или нет ?
     
    Спасибо.

    Всего записей: 147 | Зарегистр. 07-11-2005 | Отправлено: 10:17 30-10-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DDDK
    Да и так не сильно сложно
     
    Можно разными способами, но строк меньше не будет

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:22 30-10-2007
    king_stiven

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

    Код:
    for /f %%d in ('dir d:\1\*.* /b /a:-d') do goto M1

     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 10:36 30-10-2007 | Исправлено: king_stiven, 10:38 30-10-2007
    Smitis



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

    Код:
     
    pushd d:\1
    for  %%f in (*) do goto m1
    popd
    ....
     
    :m1
    popd
    ....
     

    или так

    Код:
     
    dir /b/s d:\1 2>&1 | find /i ":" > nul && goto m1
     



    ----------
    Разум когда-нибудь победит

    Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 10:38 30-10-2007 | Исправлено: Smitis, 10:46 30-10-2007
    01MDM



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

    Код:
     
    @echo off
    dir /b d:\1\*.* | findstr [a-zA-Z0-9] >nul
    if not %errorlevel%==0 (echo folder is empty) else (echo files exist)  
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:40 30-10-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Smitis
    Cогласен, и гораздо быстрее на папках с большим количеством файлов...
     
    Конкурс? кто короче напишет?

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:44 30-10-2007
    Smitis



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

    Цитата:
    Конкурс? кто короче напишет?

    Самый короткий у меня

    ----------
    Разум когда-нибудь победит

    Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 10:45 30-10-2007 | Исправлено: Smitis, 10:45 30-10-2007
    KapralBel



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

    Код:
    @echo off
    dir /b D:\1 |findstr /r .
    If ErrorLevel 1 (Echo Empty) Else (Echo Exist)

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:59 30-10-2007 | Исправлено: KapralBel, 11:02 30-10-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    У меня нечто похожее:

    Код:
     
    (dir d:\1\ /a-d 1>nul 2>&1)&&echo Exist||echo Empty
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:10 30-10-2007 | Исправлено: Elroir, 11:13 30-10-2007
    Smitis



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

    Код:
     
    dir /b/s 1 2>&1 | find/i"\" > nul && echo Not empty || echo Empty
    dir /b 1 2>&1 | findstr/r . > nul && echo Not empty || echo Empty
     



    ----------
    Разум когда-нибудь победит

    Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 11:23 30-10-2007 | Исправлено: Smitis, 11:30 30-10-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 100 101 102 103

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru