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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BasiL
    Если оставить дабл-кавычки, то в цикле будет обрабатываться только одна из них, и в результате получим неверный токен.
    Попробуй убрать эту строку, и все станет понятно.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:55 08-12-2007
    BasiL



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Да, все понял! Спасибо еще раз!

    Всего записей: 3250 | Зарегистр. 13-03-2004 | Отправлено: 10:35 09-12-2007
    Zvyagel

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите. Срочно нужен батник если реально который бы смотрел какой динамический айпишник на удаленных компах и менял бы его на такойже только статический с указанием маски и шлюза.  А то надо изменить айпишиники на 150 компах, а по всем не побегаешь. Если не возможно тогда батник в каком бы указал рабочии станции и айпишиники какие данной станции надо прописать

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 11:38 09-12-2007 | Исправлено: Zvyagel, 12:36 09-12-2007
    BasiL



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zvyagel
    я думаю, сделать можно.
    Если винды WinXP++ то можно посетить статику через netsh, а взять настройки из ipconfig.
    Правда, задача усложнится, если языки на машинах разные (рус, англ. и т.д.), ну и еще надо выдирать имя сетевого интерфейса, он нужен для netsh... но тоже можно сделать...

    Всего записей: 3250 | Зарегистр. 13-03-2004 | Отправлено: 12:41 09-12-2007
    Zvyagel

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да WinXp++ на всех машинах в Стандартах языка у всех стоит Русский.
    netsh пробовал только не получается в командной строке прописывал
    netsh -r 192.168.0.40 interface ip set address "Подключение по локальной сети" static 192.168.0.200 255.255.255.0 192.168.0.6. В командной строке ошибки не выбило но айпишник на удаленном компе не поменяло

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 12:44 09-12-2007 | Исправлено: Zvyagel, 12:49 09-12-2007
    BasiL



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

    Цитата:
    netsh -r

    что то я в хелпе не вижу такого ключа...

    Всего записей: 3250 | Зарегистр. 13-03-2004 | Отправлено: 12:56 09-12-2007
    Zvyagel

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

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 13:00 09-12-2007
    BasiL



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

    Всего записей: 3250 | Зарегистр. 13-03-2004 | Отправлено: 13:02 09-12-2007
    Zvyagel

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Скопировать и запустить батник на компах не проблема. Проблема в том что бы этот батник брал динамический адрес машини и прописывал его как статический с указанием маски и шлюза. а 150 батников для каждой машини писать долго. так как придется сначало просканить всю сетку и выбрать адреса каждой машини и под нее клепать батник. Думаю что это почти тоже самое что бегать по всем этим машинам и просто вручную прописывать адреса

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 13:06 09-12-2007
    BasiL



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет, я имел ввиду один, универсальный батник.
    Сейчас попробую нарисовать...

    Всего записей: 3250 | Зарегистр. 13-03-2004 | Отправлено: 13:08 09-12-2007
    Zvyagel

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Главное что бы он сам определял динамический адрес который присвоенный компу

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 13:10 09-12-2007
    BasiL



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

    Код:
    @echo off
     
    for /f "delims=: tokens=1,2*" %%a in ('ipconfig ^| find "IP-"') do (
        set IPadd=%%b)
    echo ipaddress:%IPadd%
    for /f "delims=: tokens=1,2*" %%a in ('ipconfig ^| find "255"') do (
        set mask=%%b)
    echo netmask:%mask%
    for /f "delims=: tokens=1,2*" %%a in ('ipconfig ^| find "шлюз"') do (
        set gw=%%b)
    echo gateway:%gw%
    netsh interface ip set address name="Подключение по локальной сети" source=static addr=%IPadd% mask=%mask%
    netsh interface ip address name="Подключение по локальной сети" gateway=%gw% gwmetric=1

    Всего записей: 3250 | Зарегистр. 13-03-2004 | Отправлено: 13:24 09-12-2007
    Zvyagel

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Батник не срабатывает так как руский текст переводит в иероглифы

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 13:36 09-12-2007
    BasiL



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

    Всего записей: 3250 | Зарегистр. 13-03-2004 | Отправлено: 13:39 09-12-2007
    Zvyagel

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сохранил адрес и маска ставятся а вот шлюз и DNS нет. Главное с компов брать IP  а шлюз, маска и днс у всех одинаковые что прописать в батнике что бы шлюз, маски и днс ставило то что я укажу в батнике

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 13:55 09-12-2007 | Исправлено: Zvyagel, 13:56 09-12-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zvyagel
    Ну так используй из вышеприведенного кода только первый for.
    В переменной IPadd у тебя будет нужный айпишник.
    Дальше все пропиши руками (маску, шлюз и т.д) - на последних двух строчках впиши свои значения вместо переменных.
    P.S. Большая просьба - прежде чем написать, сформулируй свою мысль и расставляй, пожалуйста, знаки препинания.

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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А DNS как правильно прописывается? Чтото у меня не получается ничерта

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 14:05 09-12-2007 | Исправлено: Zvyagel, 14:08 09-12-2007
    Elroir



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

    Код:
     
    netsh interface ip set dns "Подключение по локальной сети" static 192.168.0.1
     

    Вместо "192.168.0.1" пропиши свой адрес DNS сервера.

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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у меня получился батник такого содержания
    @echo off
     
    for /f "delims=: tokens=1,2*" %%a in ('ipconfig ^| find "IP-"') do (
        set IPadd=%%b)
    echo ipaddress:%IPadd%
    for /f "delims=: tokens=1,2*" %%a in ('ipconfig ^| find "255"') do (
        set mask=%%b)
    echo netmask:%mask%
    netsh interface ip set address name="Подключение по локальной сети" static addr=%IPadd% mask=%mask% gateway=192.168.0.2 gwmetric=1
    netsh interface ip set dns name="Подключение по локальной сети" static 192.168.0.1
     
     
    Огромное спасибо все заработало!

    Всего записей: 24 | Зарегистр. 21-08-2006 | Отправлено: 14:35 09-12-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вот более солидное и универсальное определение шлюза
    Код:
    for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces" /v DhcpDefaultGateway /t reg_multi_sz /s^|findstr REG_MULTI_SZ') do set gate=%%a

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 14:47 10-12-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