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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    SeriouSShat

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Почему, когда я выполняю команду:
    traptomail.bat "my@mail.ua" NodeDown asa Host:asa.ukr.ua State:NodeDown Status:Critical Address:10.0.0.10 "Thu Aug 06 15:22:05 EEST 2009"
    сам traptomail.bat:
    Подробнее...
    Я получаю следующую ошибку:
    Aug was unexpected at this time.
    Если убрать вот это - "Thu Aug 06 15:22:05 EEST 2009", то все работает.
    В чем может быть проблема???

    Всего записей: 8 | Зарегистр. 04-08-2009 | Отправлено: 18:49 07-08-2009
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:54 09-08-2009
    garri671



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

    Цитата:
    Экранируй "^|"

    Увы непомогло, ошибка синтаксиса

    Всего записей: 133 | Зарегистр. 18-07-2007 | Отправлено: 05:57 10-08-2009 | Исправлено: garri671, 06:00 10-08-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    garri671
    Там еще одна ошибка в команде findstr пропущена "t"

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:29 10-08-2009
    garri671



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

    Цитата:
    Там еще одна ошибка в команде findstr пропущена "t"

    Все равно не работает - Ошибка в синтаксисе, очень нужно!!

    Всего записей: 133 | Зарегистр. 18-07-2007 | Отправлено: 08:39 10-08-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    garri671
    Так не получается?

    Код:
     
    C:\> for /f %i in ('net view ^| findstr \\\\') do @sc %i start messenger  
     

     
    Если из батника удвой "проценты": %%i

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:52 10-08-2009 | Исправлено: 01MDM, 08:54 10-08-2009
    garri671



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Вот это по нашему, спасибо
     
    Добавлено:
    01MDM

    Цитата:
    for /f %i in ('net view ^| findstr \\\\') do @sc %i start messenger

    Столкнулся с проблемкой команда net view не видит все машины домена. Как выйти из положения? Может кто нибудь знает?

    Всего записей: 133 | Зарегистр. 18-07-2007 | Отправлено: 09:42 10-08-2009 | Исправлено: garri671, 14:58 10-08-2009
    SeriouSShat

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите все же решить проблему с вставкой даты в сообщение (пост от - Отправлено: 20:49 07-08-2009).

    Всего записей: 8 | Зарегистр. 04-08-2009 | Отправлено: 17:19 10-08-2009
    wolf0425



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

    Цитата:
    Почему, когда я выполняю команду:
    traptomail.bat "my@mail.ua" NodeDown asa Host:asa.ukr.ua State:NodeDown Status:Critical Address:10.0.0.10 "Thu Aug 06 15:22:05 EEST 2009"
    Я получаю следующую ошибку:
    из-за строки IF ""Thu Aug 06 15:22:05 EEST 2009""=="" GOTO Continue  
    поменяй ограничители на другие, например так IF /%4/==// GOTO Continue

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:52 10-08-2009 | Исправлено: wolf0425, 17:55 10-08-2009
    ortoror

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    здравствуйте..  
    помогите пожалуйста, мне нужно 2 батника:
     
    первый) чтобы делал бек-ап файла хостс (%windir%/system32/drivers/etc/ hosts), если бекап уже существует - то просто закончить работу...  
    проблема в следующем - у меня почему-то не получается копировать файл у которого нету разрешения..
     
    второй) чтобы этот бекап вогружался на место старого hosts.  
    Проблема - запрет удаления и перезаписи файла hosts.
     
    заранее благодарю

    Всего записей: 2 | Зарегистр. 10-08-2009 | Отправлено: 18:56 10-08-2009
    01MDM



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

    Код:
     
    @echo off
    pushd "%windir%\system32\drivers\etc"
    if not exist ~hosts copy hosts ~hosts
    popd
     

    2:

    Код:
     
    @echo off
    pushd "%windir%\system32\drivers\etc"
    if exist ~hosts copy /y ~hosts hosts
    popd
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:34 10-08-2009
    ortoror

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

    Цитата:
    @echo off
    pushd "%windir%\system32\drivers\etc"
    if not exist ~hosts copy hosts ~hosts
    popd  

    на это пишет
    "hosts
    Не удается найти указанный файл
    Скопировано файлов:          0."
    ----------------------------------------------------
    прошу прощения. все само собой снова заработало

    Всего записей: 2 | Зарегистр. 10-08-2009 | Отправлено: 20:26 10-08-2009 | Исправлено: ortoror, 20:32 10-08-2009
    Serhi84

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите ,как изменить часть имени файла? То есть к примеру в папке есть файлы с именем EJxxxx, необходимо изменить имена на ELxxxx ( в имени поменять J на L) и к измененному имени добавить текущую дату.
     
    чувствую как то через % %%~ni:EJ=EL % делается, но не получается...

    Всего записей: 45 | Зарегистр. 31-01-2008 | Отправлено: 10:57 11-08-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Serhi84
    Либо выноси за пределы цикла, либо назначай переменную в самом цикле:
    1:

    Код:
     
    @echo off
    setlocal
    for /f "tokens=*" %%i in ('dir /b EJ*') do call:rename "%%i"
    goto:eof
     
    :rename
    set "file=%~1"
    ren %1 "%file:EJ=EL%"
     

    2:

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    for /f "tokens=*" %%i in ('dir /b EJ*') do (
        set "file=%%i"
        ren %%i "!file:EJ=EL!"
    )
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:10 11-08-2009
    wolf0425



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

    Цитата:
    есть файлы с именем EJxxxx, необходимо изменить имена на ELxxxx, и к измененному имени добавить текущую дату.  
     
    для файлов с именами без расширения - это делается в одну команду,  
    ren EJ* EL*%date%
     
    с расширением - правишь первый вариснт 01MDM
     

    Код:
    @echo off
    setlocal
    for /f "tokens=*" %%i in ('dir /b EJ*') do call:rename "%%i"
    goto:eof  
     
    :rename
    set "name=%~n1"
    set name
    ren %1 "%name:EJ=EL%%date%%~x1"

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:04 12-08-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    смотрите что нашел
    "%userprofile%\0016~1" - это папка "Рабочий стол"

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 11:55 12-08-2009
    wolf0425



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

    Цитата:
    "%userprofile%\0016~1" - это папка "Рабочий стол"
     
    У тебя на компе - возможно, хотя и странновато

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:13 12-08-2009
    spilanto

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, разбирающиеся, помогите... есть задача: пинговать оределенные адреса маршрутизаторов D-link 804HV (192.168.1.x, 192.168.2.x и т.д.) в случае не отклика запустить ребут... по средствам http://192.168.1.x/x.htm  
     
    реальна ли реализация этого с помощью батника, если да прошу: направить на путь истинный и показать как это выглядит.
     
    заранее благодарен, с уважением...

    Всего записей: 3 | Зарегистр. 12-08-2009 | Отправлено: 15:40 12-08-2009 | Исправлено: spilanto, 15:41 12-08-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    У тебя не катит?
    Я когда себе турбо С ставил увидел что он у меня так отображает рабочий стол
     
    Добавлено:
    spilanto

    Цитата:
    192.168.1.x, 192.168.2.x и т.д.

    x-значит произвольное число? т.е. нужно все такие адруса пропинговать 192.168.Х.Х ?
    запустить ребут чего? + по каким средствам? что надо ссделать с http://192.168.1.x/x.htm   ?

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 17:49 12-08-2009
    spilanto

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть маршрутизатор D-link c ip - 192.168.1.1 он переодически теряет VPN тонель, помогает только ребут через его веб интерфейс. в адресной строке браузера это выглядит следующим образом http://admin:1234@192.168.1.1/x.htm
     
    в айпи - х - произвольное число.
     
    верное пропинговать нужно 192.168.х.х
     
    запустить ребут маршрутизатора по средствам браузера в адресной строке которого должно быть - http://admin:1234@192.168.1.1/x.htm

    Всего записей: 3 | Зарегистр. 12-08-2009 | Отправлено: 18:08 12-08-2009
       

    Страницы: 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru