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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Elroir



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

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    set "folder=f:\"
    set "copy_to=f:\testc\"
    for %%a in (%folder%*.*) do (
    set "file_date=%%~ta"
    set "file_dm=!file_date:~0,5!"
    if "!file_dm!"=="31.01" call :copy_file "%%a"
    if "!file_dm!"=="29.02" call :copy_file "%%a"
    if "!file_dm!"=="28.02" call :copy_file "%%a"
    if "!file_dm!"=="31.03" call :copy_file "%%a"
    if "!file_dm!"=="30.04" call :copy_file "%%a"
    if "!file_dm!"=="31.05" call :copy_file "%%a"
    if "!file_dm!"=="30.06" call :copy_file "%%a"
    if "!file_dm!"=="31.07" call :copy_file "%%a"
    if "!file_dm!"=="31.08" call :copy_file "%%a"
    if "!file_dm!"=="30.09" call :copy_file "%%a"
    if "!file_dm!"=="31.10" call :copy_file "%%a"
    if "!file_dm!"=="30.11" call :copy_file "%%a"
    if "!file_dm!"=="31.12" call :copy_file "%%a"
    )
    forfiles /p %folder% /m *.* /d -8 /c "cmd /c if @isdir==FALSE del /q /f @path"
    goto :EOF
    :copy_file
    copy %1 %copy_to% > nul
     

    Используется майкрософтовская утилита forfiles.exe.
    Выделенные названия директорий замени на свои.
    Если год високосный - скопируются файлы за 29.02 и 28.02.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:40 24-09-2007
    Chef



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

    Код:
     
    for /F "tokens=3* skip=3 delims=    " %%a in ('reg query "HKLM\SOFTWARE\Borland\BDS\5.0\Library" /v "Search Path"') do set spath=%%a
    echo %spath%
     

    выдаёт пустую строку, хотя  

    Код:
     
    ... do echo %%a
     

    работает как надо?

    Всего записей: 221 | Зарегистр. 22-04-2006 | Отправлено: 19:27 24-09-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Chef
     
    Если перебираются несколько значений, то попробуй так
     

    Код:
     
    for /F "tokens=3* skip=3 delims= " %%a in ('reg query "HKLM\SOFTWARE\Borland\BDS\5.0\Library" /v "Search Path"') do (
            set "spath=%%a"
            call:_spath
    )
    goto:eof
    :_spath
    echo %spath%  
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:40 24-09-2007
    Chef



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Нет. Перебирать ничего не надо.
     
    Upd: оказывается в таком виде:

    Код:
     
    for /F "tokens=3* skip=3 delims=    " %%a in ('reg query "HKLM\SOFTWARE\Borland\BDS\5.0\Library" /v "Search Path"') do set spath=%%a
    echo %spath%  
     

    оно работает, а этом:

    Код:
     
    if "%ide%"=="1" (
    for /F "tokens=3* skip=3 delims=    " %%a in ('reg query "HKLM\SOFTWARE\Borland\BDS\5.0\Library" /v "Search Path"') do set spath=%%a
    echo %spath%  
    )
     

    уже нет

    Всего записей: 221 | Зарегистр. 22-04-2006 | Отправлено: 20:02 24-09-2007 | Исправлено: Chef, 23:32 24-09-2007
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Спасибо. Всё работает. За исключением имён файлов с пробелами.
    Только поправил строку

    Цитата:
    forfiles /p %folder% /m *.* /d -8 /c "cmd /c if @isdir==FALSE del /q /f @path"
    на
    forfiles -p%folder% -m*.* -d-8 -c"cmd /c if @ISDIR==FALSE del /q /f @FILE"


    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 23:21 24-09-2007
    Elroir



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

    Цитата:
    Всё работает. За исключением имён файлов с пробелами

    Да - это я недоглядел
    Надо либо @path, либо @file взять в кавычки.  
     
    Chef
    В шапке, в разделе "Описания работы команд и символов участниками темы", почитай  
    "setlocal enabledelayedexpansion и переменные окружения"

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:52 24-09-2007 | Исправлено: Elroir, 00:41 25-09-2007
    Chef



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Спасибо, помогло!
    А endlocal, насколько я понял, вызывать не обязательно?

    Всего записей: 221 | Зарегистр. 22-04-2006 | Отправлено: 01:08 25-09-2007
    Elroir



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

    Цитата:
    А endlocal, насколько я понял, вызывать не обязательно?

    Если endlocal не был вызван в коде - он автоматически вызывается при выходе из батника.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:15 25-09-2007
    cluster

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

    Цитата:
    Надо либо @path, либо @file взять в кавычки

    1. А у меня версия forfiles.exe понимает переменные только в верхнем регистре (@PATH, @FILE).
    2. Зачем тут @PATH? Мы же обрабатываем файлы. Или ты имел в виду %folder%?
    3. Кавычки не помогают ): Пробовал по всякому.

    Цитата:
    forfiles -p%folder% -m*.* -d-8 -c"cmd /c if @ISDIR==FALSE del /q /f "@FILE""
    forfiles -p%folder% -m*.* -d-8 -c"cmd /c if @ISDIR==FALSE del /q /f "@FILE"
    forfiles -p%folder% -m*.* -d-8 -c"cmd /c if @ISDIR==FALSE del /q /f "@PATH\@FILE""

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 02:10 25-09-2007
    Elroir



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

    Цитата:
    1. А у меня версия forfiles.exe понимает переменные только в верхнем регистре (@PATH, @FILE).

    Ну ты понял, что я имел в виду

    Цитата:
    2. Зачем тут @PATH?

    @PATH - это полный путь к файлу, включая сам файл.

    Цитата:
    3. Кавычки не помогают ): Пробовал по всякому.

    Очень странно - у меня как раз работает первый из опробованных тобой вариантов.
    Попробуй другую версию forfiles.exe - http://dump.ru/files/m/m3964988801/
    Это та, которой я пользуюсь (возьми мой вариант кода с кавычками вокруг @path).  


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:33 25-09-2007
    cluster

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

    Цитата:
    Попробуй другую версию forfiles.exe - http://dump.ru/files/m/m3964988801/  

    Оо, гуд. Всё отлично работает. Твой файлик ровно в 4 раза больше весит.

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 14:00 25-09-2007
    topotuno



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос такой как можно определить доступные локальные и вообще все диски (включая сменные) в режиме реального времени.

    ----------
    Кто виноват в Донбасской бойне!
    Кто виноват в Войне (мнение иноагента)

    Всего записей: 315 | Зарегистр. 28-10-2006 | Отправлено: 16:47 25-09-2007
    Maza Faka



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

    Код:
     
    echo list volume | diskpart
     

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня проблема: нужно скачать файл с ФТП размером 2 Гб, но за компом сижу урывками и ФТП тоже по графику работает. Реально ни как не получается. Есть ли возможность в автозагрузку положить батник для автоматического соединения с сервером и скачки, с возможностью докачки. И какие проги поддерживают такие закачки.
    Из клиентов есть встроенный в Тотал плагин, "CuteFTP Professional", и если что скачаю другой с поддержкой.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 09:55 26-09-2007
    KapralBel



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

    Код:
    open ftp.kaspesky.ru
     
    user anonymous  
    pass aa@aa.ru
    pwd /updates
    get daily.avc
    bye
     

     
    Запуск ftp -s:get_ftp.txt

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



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

    Цитата:
    И какие проги поддерживают такие закачки.  

    Большинство менеджеров-качалок поддерживают скачки с FTP, например Reget, FlashGet. Почти во всех есть планировщик.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:21 26-09-2007
    ZloyBehemoth



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не подскажите как можно решить задачу средствами комстроки windows - получить электронную почту по протоколу pop3, сохранить вложение в указанную папку. Спасибо!

    Всего записей: 242 | Зарегистр. 12-10-2004 | Отправлено: 12:28 26-09-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ZloyBehemoth
    Именно средствами комм.строки - не получится
    Надо использовать сторонние программы

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:55 26-09-2007
    ZloyBehemoth



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

    Цитата:
    Надо использовать сторонние программы

     
    Какие порекомендуете?
    Получить сообщения как текстовый файл я смог (popclient.exe). А как дальше из него выжать вложение?

    Всего записей: 242 | Зарегистр. 12-10-2004 | Отправлено: 13:02 26-09-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    надо смотреть как сохранено вложение
    UUE/MIME
    и дальше искать утиль

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:09 26-09-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