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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах 6
(часть 1, часть 2, часть 3, часть 4, часть 5)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    chel78



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

    Цитата:
    Как вариант: создать текстовый файл с IP-адресами в нужной последовательности и пинговать их в цикле:
     
    Код:
     
    @Echo Off
    For /F %%A In (wlan.txt) Do Ping %%A>>ping_log.txt  

     
    можно подробнее на примере, более детально... потому как ламер я .  

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 14:50 16-02-2009
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    chel78
    Тебе же уже все расписали .
    В файле wlan.txt находится список точек доступа - каждое название (или IP адрес) на отдельной строке.
    Лог пинга записывается в файл ping_log.txt. Команда for проходит по всем строчкам файла wlan.txt, подставляет в команду "Ping %%A" очередную точку доступа и записывает (добавляет) вывод команды ping в файл ping_log.txt.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:20 16-02-2009
    chel78



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

    Цитата:
    chel78
    Тебе же уже все расписали .
    В файле wlan.txt находится список точек доступа - каждое название (или IP адрес) на отдельной строке.
    Лог пинга записывается в файл ping_log.txt. Команда for проходит по всем строчкам файла wlan.txt, подставляет в команду "Ping %%A" очередную точку доступа и записывает (добавляет) вывод команды ping в файл ping_log.txt.

     
    в лог файле появляется только  

    Цитата:
    Для продолжения нажмите любую клавишу . . .  

     
     а в самом батнике, пишет что  

    Цитата:
    Процесс не может получить доступ к файлу, так как этот файл занят другим процесс
    ом.  

    все файлы закрыты, ничего не используется.черт его знает...

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 15:39 16-02-2009 | Исправлено: chel78, 15:41 16-02-2009
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    chel78
    ОК. По порядку:
    1. Как называется батник, который ты запускаешь?
    2. Из какой директории запускается батник?
    3. Как ты его запускаешь? (двойным кликом, из строки Run (Выполнить), из консольного окна)  
    4. Приведи полностью код, который ты запускаешь.
    5. Приведи несколько строк из файла wlan.txt.
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:16 16-02-2009
    el mentiroso



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Может подскажет кто, как обработать следующующую конструкцию:
    echo echo. >> test.bat >> run_me.bat
    т.е. чтобы выделенная строка целиком передалась в конечный файл

    Всего записей: 64 | Зарегистр. 05-12-2006 | Отправлено: 16:25 16-02-2009
    chel78



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Аааааааааааааа.....
     Протупиииииииииииииилллл... просто я батник назвал не правильно, вместо wlan.bat  назвал  ping.bat  говорю же ламер
     Все работает, спасибище  

    Всего записей: 124 | Зарегистр. 19-01-2007 | Отправлено: 17:06 16-02-2009
    diodio



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

    Цитата:
    Добрый день.  
    Подскажите, пжалста, возможно ли одной строкой запустить telnet, залогинится на устройстве и выполнить на нем же определенную команду?  
     
    что то вроде telnet 2.2.2.2 login pass system restart?  
     
    Пожалуйста, помогите написать задачу вида - пропадает пинг с устройства в сети зайти телнетом и рестартануть его.

     
     

    Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 17:13 16-02-2009 | Исправлено: diodio, 17:24 16-02-2009
    Kilyan



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли возможность завершить сеанс текущего пользователя и войти под именем другого?
    Учитывая что все происходит в АктивДиректори(юзер\домен\пароль)

    Всего записей: 886 | Зарегистр. 04-09-2008 | Отправлено: 17:22 16-02-2009
    Maza_Faka



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

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

    Экранируй спец. символы:

    Код:
     
    echo ^echo. ^>^> test.bat >> run_me.bat
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 17:37 16-02-2009
    Sceval



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите может кто создавал такой батник
    надо делать поиск по диску и по всем папкам и удалять файлы которые были созданы с 5-7 дней назад

    Всего записей: 134 | Зарегистр. 22-12-2005 | Отправлено: 18:38 16-02-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sceval
     
    Этим батник создаёт vbs скрипт
     
    @echo off
    echo WScript.Quit (DateDiff("d", CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments.Item(0)).DateCreated, Now))>timediff.vbs
     
    Этим скриптом проверяй файлы, в данном примере создания 14 дней  назад
     
    cscript timediff.vbs %1
    if %errorlevel% gtr 14 echo %1 created more than 14 days ago

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:59 16-02-2009
    vld007

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте
    есть такая задача
     - собрал термометр к компу выдает в батнике температуру 2 знака загрубляю тк шаг 0.5
    опрашиваю его 1 раз в 5 мин циклом  
    незнаю как сравнивать 2 значные цифры и при превышении запустить что либо run_.cmd например, значения температуры от 17 до 30
    что-то типа
    20
    error-13
     
    if > 25 go to :run
    if error-13 go to :run2
     
    Знатоки откликнитесь!

    Всего записей: 1 | Зарегистр. 16-02-2009 | Отправлено: 21:14 16-02-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vld007
     
    где оператор_сравнения принимает следующие значения:
     
        EQL - равно
        NEQ - не равно
        LSS - меньше
        LEQ - меньше или равно
        GTR - больше
        GEQ - больше или равно
     
     
    IF 10 GTR 1 echo OK

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 21:26 16-02-2009
    Alex1985

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka
    теперь всё отлично. спасибо!

    Всего записей: 814 | Зарегистр. 07-05-2004 | Отправлено: 22:38 16-02-2009
    graydevil



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
     
    По поводу -  
     
    А как изменить этот код ( удаление сторки c "g:\test" ) чтобы обработались все файлы в каталоге ?  
     
    @echo off  
    chcp 1251    
       
    for /f %%1 in ('dir /b *.log') do call :int_work %%1  
    goto end  
       
    :int_work  
    type %1 | find "g:\test" || goto :eof  
    type %1 | find /v "g:\test"> new_file.efd  
    del %1  
    rename new_file.efd %1  
    goto :eof  
       
    :end
     
    Все работает, батник без параметров все LOG файлы в текущем каталоге обрабатывает, ступил  )))
     
     
     

    Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 07:43 17-02-2009 | Исправлено: graydevil, 07:51 17-02-2009
    NvvLazyTiger



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    graydevil
    Цитата:
    как изменить этот код ( удаление сторки c "g:\test" ) чтобы обработались все файлы в каталоге ?
    Например сделать так:
    Код:
    @echo off
    set ConText=g:\test
    for %%a in (*.log) do call :int_work %%a
    goto :eof
     
    :int_work  
    find /i "%ConText%"    < "%*" || goto :eof  
    find /i /v "%ConText%" < "%*" > new_file.efd  
    del "%*"
    rename new_file.efd "%*"

    Update#1
     
    graydevil
    Цитата:
    батник без параметров все LOG файлы в текущем каталоге обрабатывает
    Исходный батник будет "чудить" например на именах логов с пробелами. Предложенный - нет

    Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 08:47 17-02-2009 | Исправлено: NvvLazyTiger, 09:08 17-02-2009
    Mozgius

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди нужно модифицировать скрипт следующего вида:
     
    net use p: /delete
    net use r: /delete
    net use p: \\philka\public  пароль /user:philka\пользователь
    net use r: \\philka\public\private  пароль /user:philka\пользователь
     
    нужно чтобы скрипт подставлял имя пользователя и пароль из текстового файла (login-user.txt) вида:
     
    user1 pass1
    user2 pass2
    \\user3 pass3
    user4 pass4
     
    где:
     
    user1 - имя пользователя
    pass1 - пароль
    \\ - признак означающий что данные именно из этой строки нужно подставить в net use, логин и пароль в нужные места
     
     
     
     
     
     
    Добавлено:
    Люди нужно модифицировать скрипт следующего вида:
     
    net use p: /delete
    net use r: /delete
    net use p: \\philka\public  пароль /user:philka\пользователь
    net use r: \\philka\public\private  пароль /user:philka\пользователь
     
     
    нужно чтобы скрипт подставлял имя пользователя и пароль из текстового файла (login-user.txt) вида:
     
    user1 pass1
    user2 pass2
    \\user3 pass3
    user4 pass4
     
    где:
     
    user1 - имя пользователя
    pass1 - пароль
    \\ - признак означающий что данные именно из этой строки нужно подставить в net use, логин и пароль в нужные места
     
    Добавлено:
    Люди нужно модифицировать скрипт следующего вида:
     
    net use p: /delete
    net use r: /delete
    net use p: \\philka\public  пароль /user:philka\пользователь
    net use r: \\philka\public\private  пароль /user:philka\пользователь
     
    нужно чтобы скрипт подставлял имя пользователя и пароль из текстового файла (login-user.txt) вида:
     
    user1 pass1
    user2 pass2
    \\user3 pass3
    user4 pass4
     
    где:
     
    user1 - имя пользователя
    pass1 - пароль
    \\ - признак означающий что данные именно из этой строки нужно подставить в net use, логин и пароль в нужные места
     
    Добавлено:
    Люди нужно модифицировать скрипт следующего вида:
     
    Подробнее...  
     
    нужно чтобы скрипт подставлял имя пользователя и пароль из текстового файла (login-user.txt) вида:
     
    Подробнее...  
     
    где:
     
    Подробнее...  
     
     
    Добавлено:
    http://forum.ru-board.com/forall/ajax/insert_tags/blank.gif
     

    Всего записей: 7 | Зарегистр. 26-04-2006 | Отправлено: 11:30 17-02-2009
    Maza_Faka



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

    Код:
     
    @Echo off
     
    For /F "Tokens=1,2 Delims= " %%A In (login-user.txt) Do Echo %%A | Find "\\">Nul && Call :MyProc %%A %%B
    GoTo :EOF
     
    :MyProc
    Set UserName=%1
    Set UserName=%UserName:~2%
    Set Pass=%2
     
    net use p: /delete
    net use r: /delete
    net use p: \\philka\public %Pass% /user:philka\%UserName%
    net use r: \\philka\public\private %Pass% /user:philka\%UserName%
     
    GoTo :EOF
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:18 17-02-2009
    diodio



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

    Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 01:48 18-02-2009
    ikif



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Помогите с написанием Батча, даже не знаю как начать его.
    Задача такова:  
    Нужно , находясь подключеным к интернету, записать ай-пи в файл и сделать релог, после этого надо новый ай-пи сверить с записаным и если они одинаковы , то релог опять.
     
    При следующем запуске бата, ДОБАВЛЯЕМ ай-пи , которий у нас в данный момент к файлу с записаными предыдущими ай-пи. После релога , надо проверить новый ай-пи со всеми ай-пи из файла-списка.
     
    Как отключиться и подключиться к интернета я знаю.
     
    Заранее благодарен.

    Всего записей: 164 | Зарегистр. 09-12-2006 | Отправлено: 04:12 18-02-2009 | Исправлено: ikif, 04:14 18-02-2009
       

    Страницы: 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-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru