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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах (часть 1)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    WSH - разное , подборка , что-то и по русски.
    Книжка
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:03 04-04-2007
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    скажите а может sed.exe не в каждую строку вставлять а найти строку по кртерию
    aaaa=????
    и заменить на aaaa=cccc  
    в файле много сторок но заменить надо одну
     
    подскажите что за переменные
    s/^.*$/<a href="http:\/\/&">&<\/a>/
    --------
       ^
     
    как применить в моем случае
     
    спасибо    

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 15:01 04-04-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnRD
    Я тут тебе не сильный советчик, потому как sed пользуюсь старой, еще 16-битной(синтаксис временами разнится с sed от gnu). Что в общем не рекомендуется, под виндовс лучше пользоваться нормальными 32-битными утилитами. Ну бзик у меня такой
    Вот в таком test.txt

    Код:

    bbbb=dddd  
    aaaa=xxxx  
    eeee=ffff

    старая sed меняет так:

    Код:

    type test.txt | sed "s/aaaa=.*/aaaa=cccc/g" > test_new.txt

    Может сейчас подойдет кто-нить, кто нормальной современной sed пользуется - подскажут, как в ней.
     
     

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 15:18 04-04-2007
    StanislavG



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

    Цитата:
     А знаешь, почему твой батник периодически сбоит и мурыжышься ты с ним уже кажется месяца три-четыре? Потому что он некрасивый, мне дык сразу не понравился

     Этот батник проработал 2 месяца и вышла у него только одна проблема которую благодаря Elroir я решил.  И вообще я думаю лучше пологаться на забытое старое и проверенное.
     
    Цитата:
    Я очень благодарен Elroir за помощь оказанную им мне.

     
     

    Всего записей: 34 | Зарегистр. 10-01-2007 | Отправлено: 16:18 04-04-2007
    igor_andreev

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

    Цитата:
    Этот батник проработал 2 месяца

    Он уже два месяца назад не собрал у тебя файлы за пред. день Эт я помню, потому-что в ответ и предложил простой и ВСЕГДА корректно работающий способ с date-1 в vbs. Ну хозяин-барин, делай как нравится.

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 17:11 04-04-2007
    ingener



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    не подскажете как проверить в бат файле доступность фтп сервера. проверка на пинг не интересна т к фтп сервис на удаленной машине может быть выключен или сбойнул. это первое условие в моем батнике. в зависимости от результата предполагается выгружать файлы с помощью ncFTPput.exe или ничего не делать, а ждать следующего запуска батника через час.

    Всего записей: 47 | Зарегистр. 26-10-2003 | Отправлено: 17:59 04-04-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ingener
    ncftpput(да и любой фтп-клиент) и так ничего делать не будет, если сервер недоступен А прошло у ncftpput все нормально или нет - смотри хэлп к ней.

    Цитата:
     
    ncftpput returns the following exit values:  
     
    0 Success.  
    1 Could not connect to remote host.  
    2 Could not connect to remote host - timed out.
    4 Transfer failed.  
    5 Transfer failed - timed out.  
    6 Directory change failed.
    7 ...
    8 ...
    и так далее...
     

    То есть, если errorlevel не ноль, то надо через час запуститься.

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 18:52 04-04-2007
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev спасибо все работает
    остановился на версии 1.5 работает отлично
     
    есть еще вопрос
    есть такой cmd

    Код:
     
    sc sdset bits "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
    (A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" >%temp%\SetServiceObjectSecurity.log
    sc sdset wuauserv "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
    (A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" >>%temp%\SetServiceObjectSecurity.log
     

    он приводит эти службы в дефолтовое состояние (ресетит access control lists)  
     
    локально он запускает без ошибок
    но когда я его пускаю удаленно с помощью psexec либо sms он возвращает ошибку
    exited on 172.17.162.158 with error code 1.
     
    в лог пишет следущее:
    [SC] SetServiceObjectSecurity SUCCESS
    [SC] SetServiceObjectSecurity SUCCESS
    и то что от него требовалось - делает правильно
     
    как добиться чтоб не было ошибки
     
    спасибо
     

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 20:36 04-04-2007 | Исправлено: JohnRD, 20:43 04-04-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnRD
    Какой errorlevel возвращают эти команды (sc sdset ...), когда запускаются локально?

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:52 04-04-2007
    ingener



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    подскажите как сделать такой вывод :
    04.04.2007  21:22 remote host not respond !
    что нужно написать после echo.
     

    Всего записей: 47 | Зарегистр. 26-10-2003 | Отправлено: 22:24 04-04-2007 | Исправлено: ingener, 22:48 04-04-2007
    Elroir



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

    Код:
     
    echo %date% %time:~0,5% remote host not respond !
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:41 04-04-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    NIKZZZZ
    А литературу на русском по VBS посоветовать можете? С аглицким у меня туго.

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 09:03 05-04-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос - можно ли средствами DOS проверить завершения процесса?
     
    Например:
     
    start notepad.exe
    :wait
    некая команда
    if %errorlevel%==0 goto wait
    echo редактирование окончено
     
    start /wait notepad.exe не предлагать!
     
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 09:27 05-04-2007
    ingener



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    подскажите как узнать с каким кодом закончилось выполнение программы. например для ncftpput таких кодов 12.  

    Всего записей: 47 | Зарегистр. 26-10-2003 | Отправлено: 09:58 05-04-2007
    NIKZZZZ



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

    Цитата:
    А литературу на русском по VBS

    На счет нормальной документации не могу посоветовать, ссылки встречал - но они оказывались битыми.
    Нашел у себя кое-что в мусоре, посмотри.
    И зайди сюда, набери в поиске VBS или WSH - может найдешь что-нибудь полезное.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:11 05-04-2007
    KapralBel



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

    Код:
     
    @Echo Off
    ncftpput -....
     
    Set ELevel=%ErrorLevel%
    If %ELevel == 10 GoTo :Cod10
    If %ELevel == 9 GoTo :Cod9  
    или
    GoTo :Cod%ErrorLevel%
     


    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:14 05-04-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ingener
    Да тебе все двенадцать не нужны, достаточно знать ноль или не ноль

    Код:

    @echo off
    ncftpls -1 ftp://ftp.rarlab.com/
    if %errorlevel%==0 (echo all ok) else echo fig tam

     
     

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 10:16 05-04-2007
    NIKZZZZ



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

    Цитата:
    с каким кодом закончилось выполнение программы.

     
    ncftpput
    echo Return code = %errorlevel%
    pause
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:17 05-04-2007
    igor_andreev

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

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 10:18 05-04-2007 | Исправлено: igor_andreev, 10:19 05-04-2007
    Elroir



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

    Цитата:
    Вопрос - можно ли средствами DOS проверить завершения процесса?

    Можно проверить, находится ли процесс все еще в памяти или нет:

    Код:
     
    tasklist | find /i "notepad">nul
    if %errorlevel%==0 goto wait
     

    Но если запущена еще одна (несколько) копия блокнота - будет работать непаравильно.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 10:24 05-04-2007
       

    Страницы: 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-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru