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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vu1tur
    вот этого я не знал. (( неделю всего bat-файлы пытаюсь изучать
    однако при любом раскладе  
    @echo %b в cmd
    или  
    @echo %%b в батнике
    результата нет. батник по-тихому что-то делает, ошибок не выдает, но результат на экран не выводит... или выводит но пустую строку ))
     
    зы: я по прежнему без отправки на почту пытаюсь получить просто на экран IP

    Всего записей: 76 | Зарегистр. 26-07-2004 | Отправлено: 10:06 26-06-2008 | Исправлено: GM07, 10:08 26-06-2008
    alexvsm



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В русской винде срабатывает конструкция:
    Код:
     
    for /F "tokens=2* delims= " %a in ('netsh interface ip show address lan ^| find /i "IP-"') do echo %a

     
    Добавлено:
    т.к. по-русски пишется "IP-Адрес" - это одно слово, а по английски "IP Address" - а это уже два слова. В первом случае %a - адрес, а во втором %a==Address, а %b - адрес
     
    Добавлено:
    или внести изменения
    Код:
    for /F "tokens=2* delims=- " %a in ('netsh interface ip show address lan ^| find /i "IP"') do echo %b

    эта конструкция должна срабатывать независимо от языка

    Всего записей: 140 | Зарегистр. 23-11-2004 | Отправлено: 10:10 26-06-2008 | Исправлено: alexvsm, 10:19 26-06-2008
    GM07

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexvsm
    срабатывает, но также: батник по-тихому что-то делает, ошибок не выдает, но результат на экран не выводит... или выводит но пустую строку ))  

    Код:
     
    >for /F "tokens=2* delims=- " %a in ('netsh interface ip show address local ^| find /i "IP"') do echo %b
     
    >
     

     
    а почему мы так плавно от ipconfig перешли на netsh? чтобы с конкретного интерфейса данные взять?
    ipconfig работает но как-то забавно ))

    Код:
     
    >for /F "tokens=2* delims=- " %a in ('ipconfig ^| find /i "IP"') do echo %b
     
    >echo IP фы  Windows  
    IP фы  Windows
     
    >echo . . . . . . . . . . . . : 10.2.0.10
    . . . . . . . . . . . . : 10.2.0.10
     
    >
     


    Всего записей: 76 | Зарегистр. 26-07-2004 | Отправлено: 10:34 26-06-2008 | Исправлено: GM07, 10:46 26-06-2008
    alexvsm



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

    Цитата:
    а почему мы так плавно от ipconfig перешли на netsh? чтобы с конкретного интерфейса данные взять?

    по-видимому да, я только по %% и % помогаю
    а что выводит
    Код:
    netsh interface ip show address local | find /i "IP"
    и

    Код:
    for /F "tokens=2* delims=- " %a in ('netsh interface ip show address local ^| find /i "IP"') do echo [%a] [%b]
    ?

    Всего записей: 140 | Зарегистр. 23-11-2004 | Отправлено: 10:50 26-06-2008 | Исправлено: alexvsm, 10:54 26-06-2008
    GM07

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alexvsm
    оба варианта выводят пустоту ((

    Всего записей: 76 | Зарегистр. 26-07-2004 | Отправлено: 11:18 26-06-2008
    alexvsm



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GM07
    тогда
    Код:
    netsh interface ip show address

    Всего записей: 140 | Зарегистр. 23-11-2004 | Отправлено: 11:19 26-06-2008
    GM07

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

    Код:
     
    >netsh interface ip show address
     
    Настройка интерфейса "local"
        DHCP разрешен:                        Да
        Метрика интерфейса:                   0
     
    >
     

    Всего записей: 76 | Зарегистр. 26-07-2004 | Отправлено: 11:28 26-06-2008
    alexvsm



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GM07
    А в свойствах соединения что прописано?
     
    Добавлено:
    у меня
    Код:
    Настройка интерфейса "LAN"
        DHCP разрешен:                        Нет
        IP-адрес:                             192.168.10.84
        Маска подсети:                        255.255.255.0
        Основной шлюз:                      192.168.10.1
        Метрика шлюза:                      0
        Метрика интерфейса:                   0

    т.е. похоже заработает только со статиком
     
    Добавлено:
    Точно. Посмотрел на соседней машине с DHCP, выдача как у тебя.

    Всего записей: 140 | Зарегистр. 23-11-2004 | Отправлено: 11:40 26-06-2008 | Исправлено: alexvsm, 11:55 26-06-2008
    01MDM



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

    Цитата:
    оба варианта выводят пустоту ((

     

    Код:
     
    C:\>for /f "tokens=2 delims=:" %i in ('ipconfig ^| findstr "IP.*\."') do echo %i
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:04 26-06-2008
    GM07

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

    Код:
     
    >for /f "tokens=2 delims=:" %i in ('ipconfig ^| findstr "IP.*\."') do echo %i
     
    >echo  10.2.0.10
    10.2.0.10
     
    >
     

    локальная задача решена!  
    но в исходной задаче есть два интерфейса LAN и WAN а IP нужно снять с VPN подключения:

    Цитата:
     
    т.е. на ПК есть две сетевухи Local и Inet назначение которых понятно по их именам. IP на обоих интерфейсах статические. Подключение internet к инету происходит через VPN с запросом логина и пароля, при этом получаем "белый" динамический IP - вот его и хотелось бы получить по смс ))
     

    http://forum.ru-board.com/topic.cgi?forum=62&topic=13556&start=960#17

    Всего записей: 76 | Зарегистр. 26-07-2004 | Отправлено: 16:01 26-06-2008 | Исправлено: GM07, 16:02 26-06-2008
    alexvsm



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GM07
    тогда так
    Код:
    rem name - название интерфейса
    set name=internet
    set ip=0
    SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
    for /f "tokens=1,2* delims=:-" %%i in ('ipconfig') do (
        set int=%%i
        if !ip!==1 (
            set addr=!int:~-2!
            if -!addr!-==-IP- (
                set addr=%%k
                set addr=!addr:~1,20!
                goto done
            )
        )
        set int=!int:~0,-1!
        if /i "!int!"=="%name%" set ip=1
    )
    :done
    echo IP !addr!
     

    Всего записей: 140 | Зарегистр. 23-11-2004 | Отправлено: 06:54 27-06-2008 | Исправлено: alexvsm, 06:54 27-06-2008
    MsdLamer

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Помогите пожалуйста сос следующей задачкой. В папочке лежит много *.bat файлов следующего содержания:
    rem Для подразделения Сотрудники
    rem Подключение сетевых дисков
    net use * /delete /yes
    net use z: \\fserver\Folder_change$ /yes
    net use T: \\fserver\teach$ /yes
     
    необходимо добавить третьей строчкой во все эти Bat файлы C: как сделать? Спасибо.

    Всего записей: 53 | Зарегистр. 26-07-2007 | Отправлено: 14:37 27-06-2008
    01MDM



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

    Код:
     
    @echo off
    for %%i in (*.bat) do (
       (
        echo rem Для подразделения Сотрудники
        echo rem Подключение сетевых дисков
        echo C:
        echo net use * /delete /yes
        echo net use z: \\fserver\Folder_change$ /yes
        echo net use T: \\fserver\teach$ /yes
        ) 1>%%i
    )  
     

    Но лучше было бы сделать один на всех

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:06 27-06-2008
    MsdLamer

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А если строки после C: не одинаковые как быть? и число их тоже разное... (((

    Всего записей: 53 | Зарегистр. 26-07-2007 | Отправлено: 15:11 27-06-2008
    01MDM



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

    Цитата:
    А если строки после C: не одинаковые как быть? и число их тоже разное... (((

     
    Нужно было сразу правильно поставить задачу

    Код:
     
    @echo off
    chcp 1251 1>nul
    for %%i in (*.bat) do (
       (    
          echo rem Для подразделения Сотрудники
          echo rem Подключение сетевых дисков
          echo C:
       ) 1>"%%i~"
       more +3 "%%i" 1>>"%%i~"
       move /y "%%i~" "%%i"
    )  
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:32 27-06-2008
    JI063uk



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

    Цитата:
    alexvsm

     
     
    Столкнулся с таким же вопросом сделал вот так:
     
    @echo off
    ipconfig /all > с:\ip.txt
    blat с:\ip.txt -to мой@mail.ru -subject "IP-adress" -server mail.ru -u сервер@mail.ru -pw пароль -charset window-1251
     
    З.ы. там ящик сервер@mail.ru надо через blat регить.
    Закидываешь в диспетчер задач он тебе на мыло отсылает все ip адреса просто выбери чё надо

    Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 13:00 28-06-2008 | Исправлено: JI063uk, 14:50 28-06-2008
    SAOPP

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ребят, а можно через батник, выводить информацию о настройке ip (только: ip, mask, gateway и два dns'а)?

    Всего записей: 1048 | Зарегистр. 28-11-2004 | Отправлено: 17:12 28-06-2008
    01MDM



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

    Код:
     
    @echo off
    for %%i in (ip gateway dns) do (
        netsh diag show %%i | findstr [0-9]\.[0-9]
    )
    netsh diag show adapter /v | findstr "IPSubnet.*[0-9]"
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:51 28-06-2008
    SAOPP

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

    Всего записей: 1048 | Зарегистр. 28-11-2004 | Отправлено: 20:28 28-06-2008
    kumarp

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, каким образом мне получить список файлов в определенном каталоге FTP-сервера? Для upload использую curl.exe, а вот загружать получается только по одному указанному файлу. Вот поэтому и нужен весь их список в каталоге.

    Всего записей: 15 | Зарегистр. 29-06-2008 | Отправлено: 14:53 29-06-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru