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

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

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

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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    res2001



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

    Цитата:
    если бы arp -a показывал мне все компы в пределах сети или хотя бы все воткнутые в один свич с ним - вопросов бы не было.

    Записи в arp кэше появляются только после обращения к хосту.
    arp кэш очень короткий, если обращений нет, то данные из него удаляются достаточно быстро. Поэтому его можно использовать, только непосредственно после обращения к узлу.

    Цитата:
    Как получить их список не пингуя в цикле диапазон адресов - идей нет...

    У любого способа есть недостатки.
    Еще вариант: не пинговать сразу, а смотреть сначала в DNS есть ли там узел, если есть, то его пингуем, если пинг не прошел смотрим arp кэш, если там запись есть, то хост в сети.
    По любому надо перебирать все адреса в подсети.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 10:44 03-03-2011 | Исправлено: res2001, 10:49 03-03-2011
    wolf0425



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

    Цитата:
    Еще вариант: не пинговать сразу, а смотреть сначала в DNS есть ли там узел, если есть, то его пингуем,  
    тогда проще сразу пинговать, а чтоб не тормозило при отсутствии - сократить до минимума количество и время попыток.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:54 03-03-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    Пинг то как раз при отсутствии хоста в сети дает задержку до окончания тайм-аута, а nslookup сразу ответ дает.
    Если пинговать 255 хостов, из которых большей части нет, то задержка будет очень значительной, даже если использовать ключ -n 1
    К тому жу -n 1 как выяснилось не очень надежен, даже в локалке - бывает пропадают пакеты. Лучше юзать -n 2.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:01 03-03-2011
    wolf0425



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

    Цитата:
    дает задержку до окончания тайм-аута,
    50-100ms на тест - не очень напрягают, заодно сразу знаем включен ли хост. -w 100

    Цитата:
    даже в локалке - бывает пропадают пакеты. Лучше юзать -n 2.
    ну разве что, 1100ms - это действительно медленно.
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:13 03-03-2011 | Исправлено: wolf0425, 11:16 03-03-2011
    res2001



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

    Цитата:
    50-100ms на тест - не очень напрягают, заодно сразу знаем включен ли хост. -w 100

    При малой задержке возрастает вероятность не получить ответа от хоста, даже если он доступен. Опять же - фаервол может блокировать пинги вот тут-то и надо залезть в arp кэш.
     
    Добавлено:
    Потестировал у себя, не смог добится пропадания пингов при -w 50.
    Но как сейчас помню - пропадания были, возможно нагрузка в сети была другая.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:21 03-03-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А вот в такой ситуации, когда все компы подключены к одному роутеру LAN или WI-FI, разные рабочие группы, у всех одинаковые права? Пока всё видно по  
    arp -a

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:32 03-03-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    king_stiven
    Еще раз говорю, что arp кэш:
    1.изначально пустой
    2.добавляет записи при обращении к хосту
    3.время жизни записей очень ограничено
    Смотреть arp есть смысл только непосредственно после обращения к хосту. Обращения - имею ввиду любую сетевую активность с хостом. В минимальном варианте это пинг.
     
    Видимо у тебя в сети не много хостов и они постоянно работают друг с другом.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:50 03-03-2011
    sL4yer



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

    Код:
    297261
    297261
    395294

    вопрос: как найти одинаковые строки?

    Всего записей: 49 | Зарегистр. 22-10-2008 | Отправлено: 13:37 03-03-2011
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:43 03-03-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    можно лузерский вопрос:
    Есть папка System32. В ней языковые папки. Как во всем этом найти все файлы aaa.mui и переименовать их в bbb.mui?

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 18:20 03-03-2011
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Free_Soft
    Как-то так:
     
    cd %systemroot%\system32
    for /F %a in ('dir /b ^| findstr /R "^[a-z][a-z]\-[A-Z][A-Z]$"') do @ren %a\aaa.mui bbb.mui

    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 18:44 03-03-2011 | Исправлено: vu1tur, 18:46 03-03-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vu1tur
    ага, но это если из System32 запускать? А если нет, как путь указать можно?

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 18:46 03-03-2011
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Free_Soft
     
    for /F %a in ('dir /b %systemroot%\system32 ^| findstr /R "^[a-z][a-z]\-[A-Z][A-Z]$"') do @ren %systemroot%\system32\%a\aaa.mui bbb.mui


    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 18:48 03-03-2011
    Free_Soft



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

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:42 03-03-2011 | Исправлено: Free_Soft, 21:50 03-03-2011
    wolf0425



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

    Цитата:
    Еще бы как бы подавить сообщения, когда файл не найден...

    2^>nul ^| findstr

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:48 03-03-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да ступил... перед copy /y надо 1>nul поставить

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:54 03-03-2011
    mem0rizer

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую.
    Скажите, можно ли и если можно, то как, проверить состояние интернет-подключения (подключено\не подключено) в батнике?

    Всего записей: 120 | Зарегистр. 10-08-2010 | Отправлено: 18:44 04-03-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mem0rizer
    Цитата:
    проверить состояние интернет-подключения (подключено\не подключено) в батнике?

    Можно пропинговать 1-2 хоста, например mail.ru yandex.ru и если они доступны - сделать вывод что интернет работает. Это устроит?

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 19:02 04-03-2011
    mem0rizer

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    to Misha1989:
     
    Как это сделать с помощью пинга я знаю - такой способ не желателен, ибо есть злой фаерволл, блокирующий любые пинги...

    Всего записей: 120 | Зарегистр. 10-08-2010 | Отправлено: 19:08 04-03-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mem0rizer
    Без пинга можно проверить через wmic. Она не требует административных прав для просмотра информации.

    Код:
     
    wmic nic where netconnectionid="Подключение по локальной сети" get netconnectionstatus
     

    Возможные значения возврата:

    Код:
     
    0  (0x0) - Disconnected
    1  (0x1) - Connecting
    2  (0x2) - Connected
    3  (0x3) - Disconnecting
    4  (0x4) - Hardware not present
    5  (0x5) - Hardware disabled
    6  (0x6) - Hardware malfunction
    7  (0x7) - Media disconnected
    8  (0x8) - Authenticating
    9  (0x9) - Authentication succeeded
    10 (0xA) - Authentication failed
    11 (0xB) - Invalid address
    12 (0xC) - Credentials required
     

     
    http://msdn.microsoft.com/en-us/library/aa394216%28v=vs.85%29.aspx


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:26 04-03-2011
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru