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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    wolf0425



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

    Цитата:
    нет не обязательно  
     

    Код:
    for %%a in (page.*) do 1>>"%%~a" echo ^^^<A HREF="%%~a+1"^^^>next...^^^</A^^^>

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:39 13-04-2010
    tails80486



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ^<A HREF="page.000+1"^>next...^</A^>

    Всего записей: 68 | Зарегистр. 23-11-2009 | Отправлено: 16:46 13-04-2010
    arax20



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, подскажите какой-нибудь графический индикатор состояния выполнения, собственно проценты даже не нужны, нужна бегающая полоска, которую можно включить/выключить. А то есть батник в котором один кусок может выполнятся до 30сек и при этом на экран ничего не выводится, нужно это дело облагородить.

    Всего записей: 461 | Зарегистр. 25-10-2007 | Отправлено: 16:47 13-04-2010
    tails80486



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    видимо я совсем не ясно обьяснил %(
    на выходе нужна строка вида
    <A HREF="page.001">next...</A> ссылающаяся с 000 страницы <A HREF="page.002">next...</A> ссылающаяся с 001 итд
     
    Добавлено:
    arax20
    http://home.mnet-online.de/horst.muc/w32dial.htm#wbusy

    Всего записей: 68 | Зарегистр. 23-11-2009 | Отправлено: 16:50 13-04-2010
    arax20



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tails80486
    Вроде оно, спасибо.
     
    Блин, да там еще куча полезных утилит, почему этой ссылки не в шапке?

    Всего записей: 461 | Зарегистр. 25-10-2007 | Отправлено: 17:00 13-04-2010 | Исправлено: arax20, 17:02 13-04-2010
    tails80486



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    кстати об утилитах почему до сих пор нет в шапке ссылки на пакет gnuwin32?

    Всего записей: 68 | Зарегистр. 23-11-2009 | Отправлено: 17:50 13-04-2010
    wolf0425



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

    Цитата:
    видимо я совсем не ясно обьяснил %(  
    причем я переспрашивал же.
     

    Код:
    @echo off
    for %%a in (page.*) do call:print "%%~a"
    exit
    :print
    set t=%~x1
    set /a t = 1%t:~1% + 1  
    1>>"%~1" echo ^^^<A HREF="%~n1.%t:~1%"^^^>next...^^^</A^^^>  
     

     
     
     
    Добавлено:

    Цитата:
    Господа, подскажите какой-нибудь графический индикатор состояния выполнения,  
    пиши проценты или прошедшие секунды в title

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:00 13-04-2010 | Исправлено: wolf0425, 18:00 13-04-2010
    bredonosec



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

    Цитата:
    ну и нафига там \\ в начале, если как диск замапил?  

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

    ----------
    Вопрос: 'Что человек курит?' как правило возникает не когда ты слышишь, как он дышит, а когда видишь, что он пишет
    Пропеллер играет роль вентилятора, он останавливается -пилот потеет
    Аськи нету.

    Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 00:53 14-04-2010
    duh_S

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите как можно считать адрес почтового ящика из thebat (он единственный) и присвоить часть его имени переменной - не всё целиком - т.е. не включая все что после @
     
    Добавлено:
    подскажите плз как можно найти в системе файл (и отдельно директорию), сделать привязку переменной к пути его расположению

    Всего записей: 66 | Зарегистр. 28-08-2007 | Отправлено: 11:03 14-04-2010 | Исправлено: duh_S, 11:09 14-04-2010
    wolf0425



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

    Цитата:
    подскажите плз как можно найти в системе файл
    dir /?

    Цитата:
    сделать привязку переменной к
    for /?
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:48 14-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 15:18 14-04-2010 | Исправлено: ivn1978, 17:28 19-04-2010
    mugil_cephalus

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

    Код:
    cd\
    chcp 1251>nul
    for /f "tokens=*" %%a in ('netsh interface ip show address ^|find /i "настройка"') do echo._%%~a_
    for /f "tokens=*" %%a in ('route print ^|find /i "основной"') do echo._%%~a_
    pause

    листинг:
    G:\scripts\TEST>cd\
     
    G:\>chcp 1251 1>nul
     
    G:\>for /F "tokens=*" %a in ('netsh interface ip show address |find /i "настройка"') do echo._%~a_
     
    G:\>echo._Настройка интерфейса "Подключение по локальной сети"_
    _Настройка интерфейса "Подключение по локальной сети"_
     
    G:\>for /F "tokens=*" %a in ('route print |find /i "основной"') do echo._%~a_
     
    G:\>pause
    Для продолжения нажмите любую клавишу . . .


    2-ой :

    Код:
    @rem в wordpad-e в dos-кодировке сохраняем слово "основной"
    for /f "tokens=*" %%a in ('route print ^|find /i "®б-®ў-®©"') do echo._%%~a_
    pause

    листинг:
    G:\scripts\TEST>for /F "tokens=*" %a in ('route print |find /i "основной"') do echo._%~a_
     
    G:\scripts\TEST>echo._Основной шлюз:       x.x.x.x_
    _Основной шлюз:       x.x.x.x_
     
    G:\scripts\TEST>pause
    Для продолжения нажмите любую клавишу . . .

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 15:34 14-04-2010
    wolf0425



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

    Цитата:
    поведение команды find спорадическое ?  
    подрисуй красненьким - где ты видишь странности
     
     
    Добавлено:
    ivn1978
    Цитата:
    а как обратно в консоли показать текст из check.txt
    type check.txt
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:56 14-04-2010
    zepterman

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как сделать такой батник:
     
    ping 192.168.0.1
    ping 74.125.43.99
    ping google.com
     
    В зависимости от пинга, результаты:
    Локальная сеть - OK/Failed
    Интернет - OK/Failed
    DNS - OK/Failed

    Всего записей: 190 | Зарегистр. 27-04-2006 | Отправлено: 15:59 14-04-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    про 1-ый код: все одинаковое, но в первом цикле find находит строку на кириллице, во втором цикле - нет (хотя она там есть)
    пришлось прибегнуть к wordpad'u - 2-ой код
     
    Добавлено:
    zepterman
    ping localhost>nul 2>&1 &&echo.A ||echo.B
    && - успех  
    || - error

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 16:01 14-04-2010 | Исправлено: mugil_cephalus, 16:20 14-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 17:46 14-04-2010 | Исправлено: ivn1978, 17:28 19-04-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ivn1978
    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1980#6
     
    http://oszone.net/3827

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:55 14-04-2010 | Исправлено: mugil_cephalus, 18:08 14-04-2010
    Henry_White

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги,
    подскажите, как разименовывание переменных сделать внутри FOR ?
    Так не работает:

    Цитата:
    @echo off
    setlocal enableextensions enabledelayedexpansion
     
    Set var1=1
    set var2=2
    set var=0
     
    for /l %%k in (1,1,2) do (
        set var=var%%k
        @echo !var!
        @echo !%var%!
    )
    @echo !%var%!


    Всего записей: 2 | Зарегистр. 14-04-2010 | Отправлено: 00:11 15-04-2010
    wolf0425



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

    Цитата:
    подскажите, как разименовывание переменных сделать внутри FOR ?  

    например так:

    Код:
    (
    set var=var%%k
    echo !var!
    call echo %%!var!%%
    )
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 00:47 15-04-2010 | Исправлено: wolf0425, 00:47 15-04-2010
    Henry_White

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

    Цитата:
    for /l %%k in (1,1,2) do (
        set var=var%%k
        @echo !var!
        call :OutVar %%!var!%%
    )
    goto :EOF
     
    :OutVar
    @echo %1


    Всего записей: 2 | Зарегистр. 14-04-2010 | Отправлено: 07:52 15-04-2010 | Исправлено: Henry_White, 07:53 15-04-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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru