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

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425 Спасибо еще раз все заработало.  
    И всетаки по третьему пункту, пробовал запуск чарез hstart и CMDOW всеравно вначале окно выскакивает.

    Всего записей: 303 | Зарегистр. 29-05-2009 | Отправлено: 17:17 11-04-2010
    slech



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

    Цитата:
     
    type %yahoo_log% | find /I /c "451 VSS-IP" >%temp%
    set /p T451=<%temp%
    ::
    echo %T451%
     

    D:\>echo 3
    3

    вот так всё работает нормально, но изначально нужно без T

    Цитата:
     
    type %yahoo_log% | find /I /c "451 VSS-IP" >%temp%
    set /p 451=<%temp%
    ::
    echo %451%
     

    D:\>echo 51
    51

    С чем может быть связана неработоспособность, set /p 451=<%temp%, без буквы T ?
     
    Cпасибо
     
     
    ух ты у меня 3333 !

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 17:52 11-04-2010 | Исправлено: slech, 17:54 11-04-2010
    SaB72

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    поискал... не нашел...  
     
    можно ли в винде (в частности XP) как-то отключить и включить обычное сетевое подключение из пакетника?
    что-то типа ifup/ifdown

    Всего записей: 245 | Зарегистр. 23-10-2006 | Отправлено: 18:12 11-04-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SaB72
    я использую утиль nircmd.exe
     
    nircmd.exe rasdial adsl

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 18:18 11-04-2010
    METAJIJI

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

    Цитата:
    можно ли в винде (в частности XP) как-то отключить и включить обычное сетевое подключение из пакетника?
    что-то типа ifup/ifdown


    Код:
    netsh interface set interface name="Подключение по локальной сети" admin=DISABLED

     
    Проверить результат:

    Код:
    netsh interface show interface

    Всего записей: 27 | Зарегистр. 11-03-2010 | Отправлено: 18:45 11-04-2010 | Исправлено: METAJIJI, 18:48 11-04-2010
    wolf0425



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

    Цитата:
    С чем может быть связана неработоспособность, set /p 451=<%temp%, без буквы T ?  

    не работает потому, что винды не понимают переменных с именами, начинающимися с цифры.
    Ну то есть не совсем не понимают - присвоение не ругается и в список переменных они попадают...
    но вот замещения %451% значением -  при исполнении строк происходит не так как тебе хочется, %4 - трактуется как четвертый параметр батника, а вовсе не как начало имени переменной.
     
    кстати а чему у тебя равняется %temp% ?
    вообще-то такая переменная системой используется и её значение - каталог, а не файл. тоже нарываешься на сложности.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 19:03 11-04-2010 | Исправлено: wolf0425, 19:14 11-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 22:34 11-04-2010 | Исправлено: ivn1978, 17:26 19-04-2010
    01MDM



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

    Цитата:
    как сделать так, чтобы при отсутствии параметра в реестре (т.е. при наличии ошибки) информация об этом не выводилась в консоль?
     

     

    Код:
     
    1>nul 2>&1 reg query ......
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:59 11-04-2010
    slech



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

    Цитата:
    не работает потому, что винды не понимают переменных с именами, начинающимися с цифры.

    спасибо, поправил у себя. теперь всё работает.
     

    Цитата:
    кстати а чему у тебя равняется %temp% ?
    вообще-то такая переменная системой используется и её значение - каталог, а не файл. тоже нарываешься на сложности.

    set temp=temp.cnt
    это текстовый файл, я его использую для того что бы присвоить значение полученное в результате find своей переменной. пока проблем небыло.

    Цитата:
     
    type %yahoo_log% | find /I /c "postmaster.yahoo.com" >%temp%
    set /p Yahoo_all=<%temp%
    echo Yahoo_all = %Yahoo_all% >>%report%
     

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 23:15 11-04-2010 | Исправлено: slech, 23:15 11-04-2010
    wolf0425



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

    Цитата:
    это текстовый файл, я его использую для того что бы присвоить значение полученное в результате find своей переменной.
    а нафига там файл?

    Код:
    for /f %%a in ('find /i /c "postmaster.yahoo.com" ^< %yahoo_log% ') do set "Yahoo_all=%%a"
    1>>%report% echo Yahoo_all = %Yahoo_all%  

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 23:22 11-04-2010 | Исправлено: wolf0425, 23:31 11-04-2010
    slech



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

    Цитата:
    а нафига там файл?

    потому что я уже однажды тут вроде спрашивал и это мне ответили.
    попробую твой способ, спасибо.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 23:30 11-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 23:48 11-04-2010 | Исправлено: ivn1978, 17:26 19-04-2010
    wolf0425



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

    Цитата:
    а с этим нет
    | findstr /i KMService  
    что неудивительно - тут stdout нужен поиску
    так наверно:
    Код:
    2>nul REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\KMService" /v DisplayName | findstr /i KMService

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



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 00:20 12-04-2010 | Исправлено: ivn1978, 17:26 19-04-2010
    SaB72

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

    Цитата:
    netsh interface set interface name="Подключение по локальной сети" admin=DISABLED  

    в Win 7 работает
    в XP выдаёт Недопустимый синтаксис использования команды
    перечитал хелп по ней
    перепробовал варианты
    переименовать интерфейс можно
    отрубить нет...
    странно

    Всего записей: 245 | Зарегистр. 23-10-2006 | Отправлено: 01:26 12-04-2010
    duh_S

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

    Код:
    прогр №4(657)
    размер=5Мб, версия
    errlvl = 3 Неверная версия  
    errlvl = 3 № 17347 от 20100226 (скачано)
    errlvl = 3 № 813814 от 20100226 (передано)
    ошибка
    errlvl = 6 ошибка файла от 26/02/2010

     
    находится текст прогр №5 (наверно тут привязка к "прогр №"+"переменная-номер") и далее выполняется:
     
    на строчку  

    Код:
    размер=5Мб, версия

    запустить "путь\файл0", если следом не идут errlvl а тока прогр №5  
    идентификатор строки наверо будет "размер="
     
    далее на строку (идентификатор строки наверо будет "errlvl = 3 №"):

    Код:
    errlvl = 3 № 17347 от 20100226 (скачано)

    и  

    Код:
    errlvl = 3 № 813814 от 20100226 (передано)

    запустить файл "путь\файл3" и передать ему в качестве параметра

    Код:
    прогр №4 Неверная версия № 17347 от 20100226

    и запустить файл "путь\файл3" и передать ему в качестве параметра

    Код:
    прогр №4 Неверная версия № 813814 от 20100226

     
     
    на строку (идентификатор строки наверо будет "errlvl = 6"):

    Код:
    errlvl = 6 ошибка файла от 26/02/2010

    запустить файл "путь\файл6" и передать ему в качестве параметра

    Код:
    прогр №4 ошибка от 26/02/2010

     
    то есть нужно наити в файле запись например прогр №4 (и так со всеми прогр №х), далее после неё найти errlvl = 3 (и все остальные errlvl = х) и запустить внешний файл (батник) и передать ему параметр, в котором содержится текущее прогр №4 и соответствующее ему errlvl = 3, и так со всеми прогр №х
     
    сам файл - xls: вида:
     
    Подробнее...

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



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

    Цитата:
    с двойкой наоборот в консоли показывается вся ветка реестра...
    есть еще соображения?  
    не вся, а только прошедшая через поиск. и будет это только если ключ DisplayName имеет значение KMService
    если и это лишнее -
    Код:
    2>nul REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\KMService" /v DisplayName | findstr /i KMService  1>nul

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 02:02 12-04-2010 | Исправлено: wolf0425, 02:14 12-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 02:19 12-04-2010 | Исправлено: ivn1978, 17:27 19-04-2010
    wolf0425



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

    Цитата:
    как скрыть сообщения от команды REG ADD...
    а что, 1>nul reg add ... - не всё скрывает?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 09:51 12-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 10:14 12-04-2010 | Исправлено: ivn1978, 17:27 19-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