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

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

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

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    K0NCTANT1N

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Изменил свой огород:
    Код:
    SET FilesYes=No
    FOR %%F IN (G:\BOX\ISH\*.*) DO SET FilesYes=Yes
    IF "%FilesYes%"=="Yes" FOR %%A IN (G:\BOX\ISH\*.*) DO IF %%~zA LEQ 5000000 TOMAIL -f%%~fsA -nSERG -hU0H0 -d -t6
    , все работает, спасибо.

    Всего записей: 19 | Зарегистр. 23-04-2008 | Отправлено: 13:14 13-12-2010 | Исправлено: K0NCTANT1N, 13:26 13-12-2010
    sisss



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет не часть, всё что выводит ip config сунуть туда

    Всего записей: 29 | Зарегистр. 10-09-2010 | Отправлено: 14:29 13-12-2010
    Free_Soft



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

    Цитата:
    всё что выводит ip config сунуть туда

    это что ж такая за утилита, которая умеет работать с простыней строк в качестве параметра??

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 14:40 13-12-2010
    res2001



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

    Цитата:
    Нет не часть, всё что выводит ip config сунуть туда

    Не реально.  
    Реально вывод ipconfig сохранить в файл и имя файла подсунуть утилите или подать вывод ipconfig как входной поток для тулзы.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:26 13-12-2010
    Joo1z



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

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 15:29 13-12-2010 | Исправлено: Joo1z, 15:31 13-12-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Joo1z
    Не умеют, там как раз вывод подается во входной поток (setclip), а getclip - содержимое клипборда выводит в выходной поток. Это не то же самое что хочет sisss.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:32 13-12-2010
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Просто не понятно зачем? ТЗ никакое.
    Ощущение, что он хочет слать вывод ipconfig по аське.

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 15:41 13-12-2010 | Исправлено: Joo1z, 15:51 13-12-2010
    wolf0425



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

    Цитата:
    Ощущение, что он хочет слать вывод ipconfig по аське.
    ну может и хочет, дело в общем-то неплохое. только вот ТЗ - по прежнему никакое.
    Ему нужно или ковырять ключи той программы чтоб она поняла откуда брать сразу много строк для отправки - уж из файла их читать, из клипборда, с stdin - пофиг, но точно не из командной строки.
    Или отсылать строки последовательно,  вызывая программу заново для каждой строки вывода ipconfig.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:31 13-12-2010 | Исправлено: wolf0425, 16:35 13-12-2010
    wolf0425



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

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 19:02 13-12-2010 | Исправлено: wolf0425, 19:15 13-12-2010
    sisss



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да, вы угадали, я и буду отправлять по асе, а проге на  аргумент все равно она читает, /mess(messege то есть)=и тут до 800 строк что ли, я опытным путем смотрел, вы мне только помогите написать для вставки результатов ipconfiga бат, должно вставится вот это:

    Цитата:
     
    Подключение по локальной сети - Ethernet адаптер:
     
     
     
            DNS-суффикс этого подключения . . :  
     
            IP-адрес  . . . . . . . . . . . . : 10.45.1.185
     
            Маска подсети . . . . . . . . . . : 255.255.255.0
     
            Основной шлюз . . . . . . . . . . : 10.45.1.1
     
     
     
    beeline - PPP адаптер:
     
     
     
            DNS-суффикс этого подключения . . :  
     
            IP-адрес  . . . . . . . . . . . . : 78.106.197.85
     
            Маска подсети . . . . . . . . . . : 255.255.255.255
     
            Основной шлюз . . . . . . . . . . : 78.106.197.85
     

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

    Цитата:
     
    icqsend.exe ' muin="ася отправителя" ' ' pass="пароль отправителя" ' ' duin="ася получателя" ' mess=!ВОТ СЮДА!
    ipconfig > 1.txt
    и уже тут содержимое файла кинуть в аргумент запуска
     

    Но это мое предположение, если знаете способ лучше, а наверняка знаете то это хорошо) Вся надежда на вас)

    Всего записей: 29 | Зарегистр. 10-09-2010 | Отправлено: 21:48 13-12-2010 | Исправлено: sisss, 21:58 13-12-2010
    wolf0425



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

    Цитата:
    но несколько раз вызывать екзешник лучше не надо
    ну если не надо - значит выкидываешь icqsend и ищешь более другую программу, которая сумеет отправлять сообщение из текстового файла, а не только непосредственно из параметров запуска.
     
    Добавлено:

    Цитата:
    и уже тут содержимое файла кинуть в аргумент запуска  
    для тормозов повторяю: содержимое МНОГОстрочного файла  при всём желании не получится "кинуть в" принципиально однострочный "аргумент запуска".

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 23:45 13-12-2010 | Исправлено: wolf0425, 23:55 13-12-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sisss
    Как вариант - вывод ipconfig сложить в одну строку и передавать в таком виде, будет изрядная каша. Но можно и не отправлять весь вывод, а только то что необходимо.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 09:13 14-12-2010
    Joo1z



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

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 11:13 14-12-2010
    sisss



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Ну, что логично мне нужен только:

    Цитата:
    IP-адрес  . . . . . . . . . . . . : 78.106.197.85  

    Как его выковырнуть из текста и добавить в принципиально однострочный аргумент

    Всего записей: 29 | Зарегистр. 10-09-2010 | Отправлено: 15:39 14-12-2010
    res2001



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

    Цитата:
    Ну, что логично мне нужен только:  

    Ну вот, давно бы так.

    Цитата:
    Как его выковырнуть из текста

    Выковырнуть можно так:

    Код:
    @echo off
    SetLocal EnableDelayedExpansion
    set "ipstr="
    for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr "IP-" ') do (
        for /f %%b in ("%%a") do set "ipstr=!ipstr!;%%b"
    )
    set "ipstr=%ipstr:~1%"
    set ipstr

    На выходе в переменной ipstr - все IP адреса, выданные ipconfig, перечисленные через точку с запятой.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:11 14-12-2010 | Исправлено: res2001, 16:11 14-12-2010
    sisss



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нашёл сайтик http://icanhazip.com/ он выводит только 1 строку с веншним IP как можно, то что он выводит засунуть в фаил, и возможно ли это вообще?

    Всего записей: 29 | Зарегистр. 10-09-2010 | Отправлено: 22:12 14-12-2010
    wolf0425



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

    Цитата:
    как можно, то что он выводит засунуть в фаил

    wget есть где-то в шапке. Ну или в гугле.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 22:27 14-12-2010
    Lamman



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача стоит такая:
    В некоторой директории лежит ~1000 файлов с именами формата pict_%data%_%time%.bmp
    Т.е. в имени файла указано время его создания. При этом в свойствах у всех файлов время создания одно и то же.
    Надо каким-то образом переименовать эти файлы, заменив pict_%data%_%time%.bmp на порядковый_номер.bmp
    Порядковый номер - число от 1 и до (кол-во файлов).
    Причём необходимо, что бы порядковый номер причислялся от более "ранних" файлов к более "поздним", на основании даты и времени имени файла.
    Как это возможно сделать?

    Всего записей: 22 | Зарегистр. 23-04-2010 | Отправлено: 11:02 15-12-2010
    res2001



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

    Код:
    @echo off
    set "count=1"
    for /f %%a in ('dir /O:D /B pict_*.bmp') do (
      call ren %%a %%count%%.bmp
      set /a count+=1
    )

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:46 15-12-2010 | Исправлено: res2001, 11:48 15-12-2010
    Lamman



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
     
    Здорово!
    Работает.
     
    Не вполне понятен, правда, синтаксис...
    Почему %%count%% а не %counnt%?..
    Это что, как бы "именем файла будет переменная от переменной"?.. А где тогда задание значения этой переменной? Или это поправка на пакетный запуск for?
    А dir /o:d предполагает, что по времени создания они таки различаются. Действительно, оказывается эти конкретные файлы и правда отличаются...
    И что означает call ren?.. Это же вызов сценария... но ren - вроде бы не сценарий... То есть можно запускать call'ом отдельные команды... зачем?.. Что бы передать им параметры?.. Но они и так их получат, вроде бы.
    Зачем тогда?..
     
    Уж простите за въедливость... Но хотелось бы вникнуть.

    Всего записей: 22 | Зарегистр. 23-04-2010 | Отправлено: 12:39 15-12-2010 | Исправлено: Lamman, 12:52 15-12-2010
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru