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

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



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

    Цитата:
    как можно выставить задержку времени

    В смысле паузу?

    Код:
     
    ping -n 6 -w 1000 localhost>nul
     

    пауза 5 секунд.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:19 08-08-2007
    Elroir



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

    Цитата:
    И в логофе юзера тоже?

    Да - только что проверил.
    Ты проверял запуск не по расписанию (руками)?


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:32 08-08-2007
    oie71

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    только по расписанию - иначе как в логофе это сделать.

    Всего записей: 66 | Зарегистр. 09-08-2006 | Отправлено: 14:06 08-08-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    oie71
    Вопрос в том, работает ли у тебя батник в принципе?
    Как ты определяешь задание?

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:21 08-08-2007
    oie71

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    психанул и перезагрузил физический сервер....
    заработало

    Всего записей: 66 | Зарегистр. 09-08-2006 | Отправлено: 14:23 08-08-2007
    timex

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

    Цитата:
    Нет, задача не сложная, просто под рукой нет компа с Windows 98, что бы проверить код, да и не знаю я, честно говоря, какие команды там будут работать, а какие нет

     
    Ну а на XP как хотя бы? А на 98-ю сам как-нить переконверчу!
     
    P.S.  по поводу AutoIt - вобщем то подойдёт, подробнее ответил в личку. Но всё-таки хотелось бы стандартными средствами винды (XP хотя бы)...
     

    Всего записей: 44 | Зарегистр. 26-12-2005 | Отправлено: 16:33 08-08-2007 | Исправлено: timex, 16:34 08-08-2007
    marrow1

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

    Всего записей: 801 | Зарегистр. 21-12-2006 | Отправлено: 17:38 08-08-2007
    Elroir



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

    Код:
     
    @echo off
    set source=c:\work
    set backup=e:\backup\work
    cd %backup%
    for %%a in (*.*) do if not exist %source%\%%a del %%a
    set source=
    set backup=
     

    Батник должен лежать на том же диске, что и каталог бекапа, но не в самом каталоге.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:26 08-08-2007
    qrock



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

    Всего записей: 128 | Зарегистр. 19-01-2005 | Отправлено: 09:48 09-08-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qrock
    Нужно удалить файлы, которые модифицировались ровно неделю назад или имеются в виду файлы, которые модифицировались неделю назад или раньше?

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 10:07 09-08-2007
    qrock



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Я имел в виду, файлы которые модифицировались неделю назад и раньше.

    Всего записей: 128 | Зарегистр. 19-01-2005 | Отправлено: 10:25 09-08-2007
    gnome

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    данный батник оставляет в указанной директории определённое кол-во файлов, а остальные удаляет. Как сделать так чтобы он работал только с файлами rar , а остальные не трогал
     
     
    --------------
     
     @ECHO OFF
     
    echo %date% %time% RM_DIR %* Called...>> "backup.log"
     
    IF #%2#==## goto syntax
    setlocal
     
    :: Get parameter info
    set path_to_scan=%1
    set path_to_scan="%path_to_scan:"=%"
    set count=%2
    set j=0
     
    :: Set dir command to use
    set dirflag=/o:-d /b /t:c /a:-d
    pushd %path_to_scan%
    FOR /F "tokens=*" %%i in ('dir %dirflag% %path_to_scan%') do call :checkfile "%%i"
     
    popd
    endlocal
    goto :EOF
     
    :checkfile
    set target=%1
    if %j% GEQ %count% del /q  %target%  
    ::echo %date% %time%  %j% from %count% %target%>> "C:\UIT\Log\backup_dok_doc.log"
    set /a j=j+1
    :: echo %j%
    goto :EOF
     
    :syntax
    ECHO оставляет ^<number of files^> "новых" ФАЙЛОВ в  
    ECHO директории ^<path_to_scan^>, остальные ФАЙЛЫ удаляет.
    ECHO.
    ECHO Syntax: %~nx0 ^<path_to_scan^> ^<number of files^>  
    ECHO.
    ECHO Example: %~nx0 F:\users 5
    ECHO.
    goto :EOF

    Всего записей: 109 | Зарегистр. 29-12-2005 | Отправлено: 10:29 09-08-2007
    vserd

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

    Цитата:
    set dirflag=/o:-d /b /t:c /a:-d  

    set dirflag= *.rar /o:-d /b /t:c /a:-d

    Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 10:43 09-08-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    qrock
    Просмотри в версии для печати forfiles, было несколько примеров.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 11:00 09-08-2007
    qrock



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

    Цитата:
    Просмотри в версии для печати forfiles, было несколько примеров.

     
    спасибо, нашел такй код:

    Код:
    forfiles -pc:\temp -m*.* -d-14 -s -c"cmd /c del /q /f @FILE"

     
    Но мне надо удалять файлы по сети, а утилитка forfiles возвращает ошибку: UNC paths are not supported. Как быть?

    Всего записей: 128 | Зарегистр. 19-01-2005 | Отправлено: 11:32 09-08-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qrock
    Как и сказал Maza Faka, надо воспользоваться утилитой forfiles:

    Код:
    forfiles /P c:\temp /D -7 /C "cmd /c del @path"
     
    c:\temp меняешь на нужную тебе директорию.
     
    Добавлено:
    Пока писал сообщение, ты напсал свое

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:36 09-08-2007
    qrock



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

    Цитата:
    Пока писал сообщение, ты напсал свое  

     
    А по-моему вопросу с сетевыми путями у вас нет решения?

    Всего записей: 128 | Зарегистр. 19-01-2005 | Отправлено: 11:43 09-08-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qrock
    Можно воспользоваться утилитой RoboCopy из Windows Resource Kit. Я не помню точно синтаксис этой утилиты, но она позволяет выбирать файлы модифицированные сколько-то дней назад и копировать/перемещать их. Так что надо создать новую директорию, переместить туда нужные(ненужные) файлы и удалить директорию. RoboCopy умеет работать с сетевыми путями.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:13 09-08-2007
    qrock



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Спасибо, сейчас посмотрю robocopy.
     
    Методом проб нашел еще один способ решения проблемы, не совсем элегантно, зато работает: воспрользоваться  net use для подключения сетевого диска, с которым forfiles работает на ура. У меня получилось примерно так:
    Код:
     
    net use v: \\server\share /y
    forfiles -pv:\ -m*.* -d-7 -s -c"cmd /c del /q /f @FILE"
    net use v: /delete /y
     

    Всего записей: 128 | Зарегистр. 19-01-2005 | Отправлено: 12:18 09-08-2007
    timex

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, пасиб, работает. Только не обрабатывает подкаталоги.
     
    А возможно ли доработать батник, чтобы он лежал на диске исходного каталога (чтобы соединить батник-копировщик и этот батник)?

    Всего записей: 44 | Зарегистр. 26-12-2005 | Отправлено: 12:40 09-08-2007 | Исправлено: timex, 13:40 09-08-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