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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    snakeemail
    IPConfig /?

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



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

    Цитата:
    Только мне приходится отнимать 3, потому, что в конце строки почему-то ставится пробел...
     

    Это выводится пробел, стоящий перед > , он не нужен.
    echo %test%[ПРОБЕЛ]>%temp%\sz.tmp

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:43 09-04-2007
    Elroir



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

    Цитата:
    Это выводится пробел, стоящий перед >

    В моем коде нет пробела. Где ты его нашел?

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:55 09-04-2007
    snakeemail

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
     
    отличный ответ =) открыл америку

    Всего записей: 4 | Зарегистр. 20-02-2007 | Отправлено: 13:55 09-04-2007
    Smitis



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

    Цитата:
    Попробовал создать гибрит на VBS. Не получилось.

    Мне кажется, как раз с VBS гибрид не получится.

    ----------
    Разум когда-нибудь победит

    Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 14:06 09-04-2007
    sD31337

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет , у меня такой вопрос  
    Возможно ли с помощью батника отправить тхт документ на mail.ru ?

    Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 14:22 09-04-2007
    Elroir



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

    Код:
     
    @echo off
    setlocal
    for /f "tokens=2* delims=-:. " %%a in ('"ipconfig | find "IP""') do set ip=%%b
    echo IP Address - %ip%
    pause
     

    Кстати, чем тебе не понравился ответ KapralBel-а? На твой вопрос он ответил.

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



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sD31337
    только батником не обойтись.  
    а батник + blat (http://blat.net/) можно

    Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 14:28 09-04-2007
    NIKZZZZ



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

    Цитата:
    В моем коде нет пробела. Где ты его нашел?

    А твой и не добавляет пробел. Это у Maza Faka такая проблема.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:33 09-04-2007
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Народ, помогите пожалукйста срочно!  
    Можно как нитбудь при помощи батника или как-нибудь сторонне в файле Opera.ini заменить строки:
    HTTPS server=192.168.2.12:2456
    FTP server=192.168.2.12:2456
    Gopher server=192.168.2.12:2456
    HTTP server=192.168.2.12:2456
     
    надо где путь к прокси написать везде следующию строку
    Один фаил менял бы все на:192.168.5.2:2456
    Второй фаил менял бы все на 192.168.5.2:3333
    Третий фаил менял бы все на 192.168.2.12 3333
     
    ПРИЧЕМ это было бы легко сделать если знаешь с какой строки на какую менять, но дело в том, что вместо 192.168.2.12:2456 в этом месте может быть написано все, что угодно, а может быть и ничего не написано.
    Можно как-нить сделать что бы баник вставлял опеределенную строку ПОСЛЕ:  
    HTTPS server=
    FTP server=
    Gopher server=
     
    Или какими-нибудь старонними программами. Был бы ОЧЕНЬ благодарен если бы сказали как это можно сделать!!!

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 14:38 09-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    snakeemail
    Какой вопрос такой и ответ
    Если бы конкретнее обрисовал проблему - то и получил другой ответ
     
    Добавлено:
    sD31337
    Любая программа отправляющая пиьмо с комм.стоки
    например The Bat!
     
     
    Добавлено:
    Levitant
    Команда FOR - получаешь значение слева и справа от = (разделитель =)
    Левую часть анализируешь - если не * Server - пишем во временный файл левую и правую через =
    Если левая часть один из перечисленных тобой - то заменяем правую на  нужную и пишем во временный
    затем заменяем оригинал временным
     
    ЗЫ.Это так общая идея - сейчас нет времени писать точный код

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну я знаю что THE BAtom можно , а можноли из командной строки без специальных прог типа THE BAT ? извинте конечно если вопрос тупой =) просто интересно возможно ли такое
     
    --Спасибо всем кто ответил на мои вопросы=)

    Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 14:46 09-04-2007 | Исправлено: sD31337, 15:21 09-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sD31337
    Без специальный программ
    Типа  
    * Бата
    * Blat
    * smtpsend
    * и т.д.
    нельзя
    Стандартный виндовсовский шелл не позволяет
    Дополнительный (но его тоже надо ставить) PowerShell - да

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кстати я както читал на этом форуме парнь задовал вопрос про удаленное управление из командной строки я нашел сайт нанем описывается telnet но у меня ничего не получается , я вообще не догнал как это все делать , пробовал на втором компе разрешить соединение к своему ip на определенный порт , но все равно ничего не получилось , может быть мне кто нибудь поможет
    сайт => http://www.p-stone.ru/libr/os/windows/data/public23a/telnet.shtml

    Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 15:25 09-04-2007 | Исправлено: sD31337, 15:28 09-04-2007
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    KapralBel спасибо за помощь, но я в данном направлении не силен.. В шапке есть способ замены одной строки на другую, который я как-то где-то нашел, но через него копируется только извесная строка. Может есть способ замены конкретного номера строки?

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 15:50 09-04-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Levitant
    Отмотай топик на пять страниц назад и почитай про sed

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 15:56 09-04-2007
    KapralBel



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

    Код:
    @Echo Off
    Set NewIP=%1
    Echo. >Opera.new
    For /F "tokens=1-2 Delims==" %%a In (Opera.ini) Do Call :Repl "%%a" "%%b"
    Del Opera.ini /q
    Ren Opera.New Opera.ini
    GoTo :EOF
     
    :Repl
    Set Key=%1
    Set Value=%2
    Set Key=%Key:~1%
    Set Key=%Key:~0,-1%
    Set Value=%Value:~1%
    Set Value=%Value:~0,-1%
    If /i "%Key%"=="HTTPS server" (Echo %Key%=%NewIP%>>Opera.New) & (GoTo :EOF)
    If /i "%Key%"=="FTP server" (Echo %Key%=%NewIP%>>Opera.New) & (GoTo :EOF)
    If /i "%Key%"=="Gopher server" (Echo %Key%=%NewIP%>>Opera.New) & (GoTo :EOF)
    If /i "%Key%"=="HTTP server" (Echo %Key%=%NewIP%>>Opera.New) & (GoTo :EOF)
    Echo %Key%=%Value%>>Opera.New
    GoTo :EOF
     
     
     

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



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем спасибо большое.  Метод igor_andreev`а работает(только я не понял как в одном файле поменять несколько строк, если просто писать строки, то заменяется только последний фаил), но мне намного предпочтиельнее второй вариант, но он не работает, выдаёт новый фаил пустой, лишь с одним знаком пробел.
     
    Нашел извращенный варинат
    type opera6.ini | sed "s/HTTP server=.*/HTTP server=192.168.5.2:2456/g" > opera6_new.ini
    type opera6_new.ini | sed "s/HTTPS server=.*/HTTPS server=192.168.5.2:2456/g" > opera6.ini
     
    Но все-таки хочется довести до ума хороший метод KapralBel`а.

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 16:49 09-04-2007 | Исправлено: Levitant, 16:55 09-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Levitant
    1. Забыл указать вызов Opera.cmd 192.168.0.1:2233 - IP передается как параметр
    2. проблелы на концах строк поубирай
    3. Запускается в той же папке, где находится opera.ini
     
    Должен работать

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

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

    Цитата:
    только я не понял как в одном файле поменять несколько строк,

    На будущее, не только с sed - знак "|" можно использовать сколько угодно, пока длина строки позволяет. Твоя замена в одну строчку:

    Код:

    type opera6.ini | sed "s/HTTPS server=.*/HTTPS server=192.168.5.2:2456/g" | sed "s/HTTP server=.*/HTTP server=192.168.5.2:2456/g" | sed "s/FTP server=.*/FTP server=192.168.5.2:2456/g" | sed "s/Gopher server=.*/Gopher server=192.168.5.2:2456/g">opera6_new.ini  

     
     
    Добавлено:
    А если еще короче, то твоя замена делается так:

    Код:

    type opera6.ini | sed "s/^\([^ ]*\) server=.*/\1 server=192.168.5.2:2456/g">opera6_new.ini

    Но эт уже регулярные выражения пошли, ты, судя по постановке вопроса, с ними не знаком.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:07 09-04-2007 | Исправлено: igor_andreev, 18:24 09-04-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru