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

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

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

    Код:
    if not defined build goto :EOF

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 23:50 20-09-2007
    Nagual



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

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 04:55 21-09-2007
    dardreams



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

    Код:
     
    @echo off
    @cls
    :::::::::::::::::::::::
    @set y=0
    @set m=0
    @set d=0
    @set m=0
    @set vis=
    @set feb=
    @set year=%date:~6,4%"
    @set month="%date:~3,2%"
    @set day="%date:~0,2%"
    if "%year% leq "2006" (goto :m) else (goto :run)
    :m
    if %month% leq "02" (goto ) else (goto :run)

    if %day% lss "23" (echo NO DATE&&goto :eof) else (goto :run)
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :run
    if %month%=="08" set month="8"
    if %month%=="09" set month="9"
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    for /l %%a in (2000,4,3000) do @(if "%year%=="%%a" (set feb="29"&&set vis="BucokocHblu"&&goto :next) else (set feb="28"&&set vis="HE BucokocHblu"))
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    :next
    set /a y="%year%-"2006"
    set /a m=%month%-"2"
    set /a mm=%month%-"1"
    @set /a q=(%day%-"23")*-"1"
    @set /a qq=(%day%-"23")
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    @if %month%==1 set md=31
    if %month%==2 set md=%feb%
    @if %month%==3 set md=31
    @if %month%==4 set md=30
    @if %month%==5 set md=31
    @if %month%==6 set md=30
    @if %month%==7 set md=31
    @if %month%==8 set md=31
    @if %month%==9 set md=30
    @if %month%==10 set md=31
    @if %month%==11 set md=30
    @if %month%==12 set md=31
    =================================
    @if %mm%==1 set md=31
    @if %mm%==2 set md=28
    @if %mm%==3 set md=31
    @if %mm%==4 set md=30
    @if %mm%==5 set md=31
    @if %mm%==6 set md=30
    @if %mm%==7 set md=31
    @if %mm%==8 set md=31
    @if %mm%==9 set md=30
    @if %mm%==10 set md=31
    @if %mm%==11 set md=30
    @if %mm%==12 set md=31
    ::-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=::
    if %day% lss "23" (set /a y=%y%-1&&set /a m="%m%"-"1"&&set /a d="%md%"-"%q%") else (set /a d="%qq%")
    if "%m%"=="-1" set m=11
    if "%m%"=="-2" set m=10
    ::-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=::
     
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
     
    ::======================================================================::
    @col 14&&@echo.&&@echo %y% year %m% month %d% day (%vis%)&&@echo.&&col 10
    ::======================================================================::
     

     
    Добавлено:
    дата отсчета 23.02.2006.
    Если не сложно по тестите во всех вариантах)

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 09:34 21-09-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dardreams
    ругается на "col", ?

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:15 21-09-2007
    dardreams



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    еще бы это же hs_color )

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 11:31 21-09-2007
    01MDM



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

    Цитата:
    еще бы это же hs_color

     
    Не знал, не пользуюсь
    По скрипту: добавь интерактивности, чтобы дату в прошлом вводить самому.
     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:55 21-09-2007
    Fors127



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли написать такой батник.В идеале: приходишь в офис, запускаешь батник на любом ПК сети и всё готово: т.е. к этой сети и к каждому из её компьютеров можно будет теперь удаленно подключаться! Интересуют три варианта:
    1. ПК(динамический IP) подключен прямо к инету
    2. Сеть одноранговая обединена простым HUBом. Главный ПК подключен к инету, остальным раздача инета по ICS(динамический IP у всех ПК)
    3. Описан в этой теме: http://forum.ru-board.com/topic.cgi?forum=8&topic=23513#1
    Задача : одним батником или 3мя батниками (свой для каждого варианта.Запускаем его 1 раз) создать условия, чтобы в каждом варианте обеспечивался удаленный доступ к каждому ПК. Например  ipconfig /all >c:\1.txt и отправлять blat ом. Как это сделать, чтобы (после запуска батника) с этих ПК приходили e-mail ы на указанный адрес и по определенному таким образом IP  можно было удаленно обратиться к этим ПК, например(и в первую очередь !) Radmin ом. Желательно, чтобы эти e-mailы приходили при подключении к инету(с новым динамическим IP).И чтобы это всё функционировало скрытно: те никаких окон, сообщений, иконок и тд

    Всего записей: 709 | Зарегистр. 14-09-2007 | Отправлено: 23:48 21-09-2007 | Исправлено: Fors127, 00:14 22-09-2007
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребят, появилась задачка:
    написать bat-ник, чтобы удалял все файлы из директории старше недели, а файл созданный в последний день месяца копировал в определённую папку.
    Нашёл похожий wsf-скрипт, но он удаляет файлы и в подкаталогах, что не нужно.

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



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

    Цитата:
    а файл созданный в последний день месяца копировал в определённую папку

    Последний день какого месяца? Предыдущего? Или последний день любого месяца? Високосные годы учитывать? В каком формате выводится дата файла после команды "for %a in (*.*) do @echo %~ta"?

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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
     Здраствуйте.
    Как, зная среднесуточное отклонение системного времени на компьютере, скорректировать его с помощью bat-файла?
     Спасибо.

    Всего записей: 33 | Зарегистр. 07-04-2006 | Отправлено: 10:28 24-09-2007
    KapralBel



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

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:04 24-09-2007
    cluster

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

    Цитата:
    Последний день какого месяца? Предыдущего? Или последний день любого месяца? Високосные годы учитывать? В каком формате выводится дата файла после команды "for %a in (*.*) do @echo %~ta"?

    последний день каждого месяца. високосные? пусть будут.
    при запуске команды выводится сообщение:

    Код:
    Следующее использование оператора пути при подстановке параметров
    в пакетных файлах является недопустимым: %~ta

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



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

    Цитата:
    Следующее использование оператора пути при подстановке параметров
    в пакетных файлах является недопустимым: %~ta
    для батника оба % в строке надо удвоить: for %%a in (*.*) do @echo %%~ta
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:33 24-09-2007 | Исправлено: wolf0425, 14:35 24-09-2007
    Garik_Lugansk



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Скажите пожалуйста, а можно ли через cmd перезапустить или "Исправить" сетевое подключение?
    Перезапустить нашёл, а исправить можно через батник?

    Всего записей: 429 | Зарегистр. 18-05-2004 | Отправлено: 14:37 24-09-2007 | Исправлено: Garik_Lugansk, 15:01 24-09-2007
    olezi

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

    Всего записей: 33 | Зарегистр. 07-04-2006 | Отправлено: 14:40 24-09-2007
    Elroir



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

    Цитата:
    Следующее использование оператора пути при подстановке параметров  
    в пакетных файлах является недопустимым: %~ta

    Я имел в виду запуск команды из командной строки - не из батника.

    Цитата:
    для батника оба % в строке надо удвоить: for %%a in (*.*) do @echo %%~ta



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

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



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    olezi
    Ну можно через eventtriggers отслеживать соединение с интернетом
     

    Код:
    EVENTTRIGGERS /Create /EID 20158 /tr Internet-On /tk C:\Internet-On.cmd

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:51 24-09-2007
    Elroir



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

    Цитата:
    Перезапустить нашёл, а исправить можно через батник?

    Нет.
     
    Добавлено:
    Поторопился с ответом - можно попробовать следующую последовательность команд:

    Код:
    arp -d *  
    nbtstat -R
    ipconfig /flushdns
    nbtstat -RR  
    ipconfig /registerdns


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

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



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Elroir
    Спасибо, очень помогло.

    Всего записей: 429 | Зарегистр. 18-05-2004 | Отправлено: 15:50 24-09-2007
    cluster

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

    Цитата:
    В каком формате выводится дата файла после команды "for %a in (*.*) do @echo %~ta"?

    21.09.2007 23:50

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 15:52 24-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