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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Cheerful_a_bear



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

    Цитата:
    Ты читаешь мои мысли. тоже об этом подумал. Вот только самому мне батник не написать. Буду благодарен за такой батник. И как его запускать в автомате.

     
    Допустим так, если форумное сообщество меня не закидает шапками...
     
    :connect
    ping -n 1 www.yandex.ru  
    ping -n 61 127.0.0.1
    goto connect
     
    А запускать на автомате не знаю как пока, возможно надо написать в этом батнике и установку соединения,  
    получается так:
    1. устанавливает соединение (для написания надо знать, что за соединение у тебя или применить другие способы...)
    2. постоянно проверяет наличие коннекта
    3. при разрыве соединения пользователем завершается...
     
     
    п.1 в форуме есть поищи, я видел
     
    п.3 Я вот так предлагаю реализовать
    :connect
    ping -n 3 www.yandex.ru | find "TTL"> nul 2>&1  
    IF %errorlevel%==1 goto :eof
     
    ping -n 20 127.0.0.1
    goto connect
     
     
     
     
     

    Всего записей: 103 | Зарегистр. 30-04-2008 | Отправлено: 12:24 01-06-2008
    UndeadSlonopotam



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

    Код:
    echo off
    :begin
    ping -n 1 ya.ru >Nul
    if ErrorLevel 1 (goto :wait)
    if exist C:\Windows\wallpaper.jpg del C:\Windows\wallpaper.jpg
    wget -q http://undeadslonopotam.narod.ru/wallpaper.jpg
    move wallpaper.jpg C:\Windows\wallpaper.jpg
    REG ADD "HKCU\Control Panel\Desktop" /V Wallpaper /T REG_SZ /F /D "C:\Windows\wallpaper.jpg"
    %windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
    :wait
    ping -n 6 -w 1000 127.0.0.1 > nul
    goto :begin

    Столкнулся с проблемой, что после замены обоев не происходит обновление экрана.
    Соответственно, строка "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters" не работает.
     
    Решил использовать стороннюю программку SetWallpaper (http://www.optimumx.com/download/#SetWallpaper). Заменил строку с UpdatePerUserSystemParameters на C:\Setwallpaper.exe C:\Windows\wallpaper.jpg
    Все заработало!
     
    Дальше я решил сделать из батника сервис. Сделал exe с помощью Bat To Exe Converter ( http://www.f2ko.de/English/b2e/ ).
    Следовал инструкции http://support.microsoft.com/?kbid=137890
    Получился сервис. Он гоняет файл wallpaper, но не изменяет сами обои.
     
    Кто-нибудь знает, в чем проблема?
    Может ему прав не хватает?

    Всего записей: 3 | Зарегистр. 01-06-2008 | Отправлено: 12:59 01-06-2008 | Исправлено: UndeadSlonopotam, 13:26 01-06-2008
    01MDM



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:48 01-06-2008 | Исправлено: 01MDM, 14:54 01-06-2008
    igor_andreev

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

    Цитата:
    Кто-нибудь знает, в чем проблема?  
    Может ему прав не хватает?

    Сервисы стартуют от пользователя SYSTEM

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 15:07 01-06-2008
    UndeadSlonopotam



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

    Цитата:
    Сервисы стартуют от пользователя SYSTEM

    Ну да. Я это нашел. Вход от имени: "Локальная система" или в реестре "ObjectName"=LocalSystem.
    Однако, как я уже говорил, сами bat и exe вне сервиса работают исправно, в самом сервисе не работает смена обоев.
    Я пытался найти дополнительные способы обновления настроек пользователя через rundll32, не нашел.
    Кстати, система Windows Vista.

    Всего записей: 3 | Зарегистр. 01-06-2008 | Отправлено: 15:30 01-06-2008
    igor_andreev

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

    Цитата:
    Однако, как я уже говорил, сами bat и exe вне сервиса работают исправно, в самом сервисе не работает смена обоев.

    Пользователю SYSTEM глубоко начхать, кто в данный момент залогинен, залогинен ли вообще, есть ли у него обои на столе и где его рабочий стол и все остальное. Чтоб было понятней - такие вещи надо запускать от имени залогиненного юзера.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 15:40 01-06-2008
    UndeadSlonopotam



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

    Цитата:
    Пользователю SYSTEM глубоко начхать, кто в данный момент залогинен, залогинен ли вообще, есть ли у него обои на столе и где его рабочий стол и все остальное.

    Вообще-то я предполагал, что поможет галочка "Разрешить взаимодействие с рабочим столом" в параметрах входа сервиса в систему.
     

    Цитата:
    Чтоб было понятней - такие вещи надо запускать от имени залогиненного юзера

    Если там, проставить учетную запись,то появляется ошибка "Ошибка 1069: Служба не запущена из-за ошибки входа в систему". Хотя учетной записи разрешен запуск служб.

    Всего записей: 3 | Зарегистр. 01-06-2008 | Отправлено: 16:34 01-06-2008
    XmakcX

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуете!Помогите новичку.Как батником сделать подхват трафика с сетевой карты и записывать в txt?Какие операторы использовать?При том что сетевых две штуки.С созданием файлов с помощью батника знаком

    Всего записей: 45 | Зарегистр. 01-06-2008 | Отправлено: 21:51 01-06-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XmakcX
     
    netstat -e >stat.txt
     
    Или так

    Код:
     
    @echo off
    for /f "tokens=*" %%i in ('netstat -e') do (
        call:convert
        echo %%i>>stat.txt
        chcp 866 >nul    
    )
    goto:eof
    :convert
    chcp 1251 >nul
     

     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:26 01-06-2008
    Real Root



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Други! Help ME!
    То ли я очень сильно заглючил, то глючит команда REG ADD
    Вобщем нужно добавить в реестр
    Значение типа DWORD и значением 00001f90 (Это соответствует десятичному значению порта 8080). Через редактор реестра - все прекрасно работает, но вот команда
    REG ADD "HKCU\Software\Mail.Ru\Agent" /v proxy_port /t reg_binary /d 00001f90 /f
    дает ошибку. Если поменять значение 00001f90 на 00000000 то все прекрасно понимется - в чем проблема, и есть ли решение?

    Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 01:38 02-06-2008
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Real Root
    REG ADD "HKCU\Software\Mail.Ru\Agent" /v proxy_port /t reg_dword /d 0x00001f90 /f

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 02:10 02-06-2008
    Real Root



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

    Всего записей: 1037 | Зарегистр. 13-04-2006 | Отправлено: 02:15 02-06-2008
    ferzc4



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

    Цитата:
    PushD \\server\home\%username%
    if not errorlevel 1 RD /s /q .
    PopD

     
    Большое спасибо!

    Всего записей: 5 | Зарегистр. 22-05-2007 | Отправлено: 10:47 02-06-2008
    4aplin



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Cheerful_a_bear
    Спасибо !!! Только я использовал прогру Blat. Она по лучше будет, только с инстоляции на мудрил ))

    Всего записей: 17 | Зарегистр. 29-05-2008 | Отправлено: 11:47 02-06-2008
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
     
    день добрый, чтото совсем все плохо с выдергиванием атачей с помощью GetMail,
    если посланные OutlookExpress-ом архивы он выдергивал, то с MS Outlook уже и архивы не может вытащить про txt xml молчу..
     
    в чем проблема?
    Exchange 2007 ?
     
    отправляя с blat, thebat все отлично
     
    нет ли каких других консольных почтовых клиентов

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 12:02 02-06-2008
    Laureus



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

    Цитата:
    А запускать на автомате не знаю как пока...

    Есть уточнение, возможно оно упростит задачу: инет у меня безлимитный, поэтому задача сводится к пингованию без анализа коннекта. Т.е. клинул по ярлыку батника и пошло пингование Яндекса через каждые 2 минуты. Нужен вот такой простой батник, чтобы не нужно было ничего дописывать: просто кликнул и пингование началось!

    Всего записей: 244 | Зарегистр. 07-03-2008 | Отправлено: 12:18 02-06-2008 | Исправлено: Laureus, 12:22 02-06-2008
    Cyril Konst



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как получить имя принтера по умолчанию и передать его другой утилитке (setprinter.exe)?
    При этом батник нужно выполнять под юзером но с правами админа.

    Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 12:28 02-06-2008
    Cheerful_a_bear



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Laureus
    Тогда то, что я написал подойдет...

    Всего записей: 103 | Зарегистр. 30-04-2008 | Отправлено: 13:27 02-06-2008
    4aplin



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

     
    Добавлено:
    JohnRD
     

    Цитата:
    нет ли каких других консольных почтовых клиентов
     

       
    Попробуй использовать  sendfile.exe... А почему архивы не выдергивает? Попробуй вручную в консоли настроить...

    Всего записей: 17 | Зарегистр. 29-05-2008 | Отправлено: 13:33 02-06-2008 | Исправлено: 4aplin, 13:36 02-06-2008
    Elroir



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

    Цитата:
    Нужен вот такой простой батник, чтобы не нужно было ничего дописывать: просто кликнул и пингование началось!


    Код:
     
    @echo off
    :again
    ping www.yandex.ru >nul
    ping -n 121 -w 1000 127.0.0.1 >nul
    goto again
     

     
    Добавлено:
    Cheerful_a_bear
    Не обратил внимание, что в твоем посте был ответ.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:37 02-06-2008
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru