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

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

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

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    renreg



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

    Цитата:
    Я пхаю в самараспаковывающиеся архивы с параметрами автозапуска регистрационных файлов по извлечении.  

     
    Посмотрю, спасибо
     

    Цитата:
    Есть ишшо Thinstall и Molebox

     
    А где на них взглянуть можно?
     
    NIKZZZZ

    Цитата:
    Quick Batch File Compiler  

     
    Спасбо. Кажется это то, что мне нужно. Только бы разобраться в программе. Скачать-то скачал полный комплект.

    ----------
    Заграница нам поможет
    _____________________
    renreg

    Всего записей: 5117 | Зарегистр. 24-09-2001 | Отправлено: 21:21 18-05-2007
    pom205

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

    Цитата:
    если нужен не текущий путь, а путь к запущенному батнику - пользуй %~dp0

    Во-о-т! Это важно!

    Всего записей: 555 | Зарегистр. 03-06-2006 | Отправлено: 21:28 18-05-2007
    slaughty



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые, подскажите плиз. Хочу батником корректно сделать последовательно logoff и hibernate в ВинХР.
    Кручусь вокруг такого кода, но работает некорректно, сеанс завершается, но машина в хибер не уходит. Как его заставить выполнить хибернет после того как юзер благополучно вышел из системы? (пинг это экспромт, все равно не работает)

    Код:
    %windir%\system32\logoff.exe
    ping -n 2 localhost
    %windir%\system32\rundll32.exe powrprof.dll,SetSuspendState Hibernate
     

    Всего записей: 15 | Зарегистр. 08-02-2006 | Отправлено: 21:43 18-05-2007
    NIKZZZZ



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

    Цитата:
    Есть ишшо Thinstall и Molebox А где на них взглянуть можно?

    Molebox
    Thinstall
    Но это, боюсь , не совсем то, что тебе нужно - проблем с ними много.
     
     
     
    Добавлено:

    Цитата:
    Только бы разобраться в программе.

    Да там все просто - то, что ты добавил в exe'шник + сам батник распаковывается в %Temp% и там запускается батник. После выполнения батника все удаляется.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:29 18-05-2007 | Исправлено: NIKZZZZ, 22:36 18-05-2007
    Maza Faka



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

    Цитата:
    Хочу батником корректно сделать последовательно logoff и hibernate в ВинХР

    Вряд ли получится, ведь после "logoff", все запущеные пользователем процессы завершаются, соответственно завершается и выполнение батника.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:34 19-05-2007
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Maza Faka Большое спасибо ,помог. Теперь осталось разобраться как это работает.  
    А не подскажет кто-нибудь как скрывать окно?

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 12:41 19-05-2007 | Исправлено: Levitant, 13:09 19-05-2007
    Maza Faka



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

    Цитата:
    как это работает


    Код:
     
    @Echo off  
     
    ::создаём метку
    :dial_  
     
    :: команда "ipconfig" показывает все подключения работающие в данный момент,  
    :: запускаем её и при помощи символа "|" направляем вывод в команду "Find", которая  
    :: ищет строку "haz 2" и если такой строки нет (значит подключение не запущено), то  
    :: команда "Find" завершается с ошибкой. Символ "||" означает, что, если предыдущая  
    :: команда выполнилась с ошибкой, то запускается команда после символов "||"
    ipconfig | Find /i "haz 2">nul || rasphone -d "haz 2"  
     
    :: Здесь мы делаем паузу нестандартным методом, то есть пингуем несуществующий IP-
    ::адрес в течении 600 секунд
    ping -n 601 -w 1000 127.0.0>nul  
     
    ::А затем переходим к метке ":dial_" и начинаем всё сначала, этакий бесконечный цикл
    goto :dial_
     

     

    Цитата:
    как скрывать окно?

    Иногда полезно заглянуть в шапку :-)
    Здесь скачай утилиту, скопируй в папку Windows, используешь так:

    Код:
     
    @Echo off
    CMDOW @ /HID
    Твой код.........
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:18 19-05-2007 | Исправлено: Maza Faka, 13:19 19-05-2007
    Levitant



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Maza Faka  Огромное спасибо. В шапку я глядел, нашел, но там все по английски и у меня не заработало. Сейчас все ОК. Спасибо за разъеснение, блин, совсем не похоже на С++

    Всего записей: 62 | Зарегистр. 09-11-2006 | Отправлено: 13:22 19-05-2007
    wolf0425



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

    Цитата:
    Вряд ли получится, ведь после "logoff", все запущеные пользователем процессы завершаются, соответственно завершается и выполнение батника.
    вот интересно - прописанный в шедулер (по at) батник - тоже завершится? а если у него время стартовать только через минуту после логофа?
     
    imho задачу надо разбать на две:
    1. залогофиться за предсказуемое время
    2. уйти в гибернейт по команде шедулера (для начала можно потренироваться просто из батника)
    если получится по частям - то в сумме вроде ж должно получиться как просили, а что в гибернейт будет уходить не мгновенно - врядли есть разница.
    А как корректно посчитать время для шедулера - не так давно обсуждали.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:01 19-05-2007 | Исправлено: wolf0425, 18:07 19-05-2007
    sm32

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    опять про ftp
    идея:
    есть удалённый ftp-сервер, с него нужно  скачать статистику, которая обнавляется 1 раз в неделю
     
    вход под паролем ( файлы статистики произвольные)
    как с помощью bat-файла обнавлять статистику в локальной папке  
     
    удалённый сервер ftp.****.by
    user user
    pass password
    дирриктория /stat/
     
    может у кого-нитьбудь есть простое решение, не хочется ворошитьл всю тему  
     
    заранее спасибо

    Всего записей: 1 | Зарегистр. 01-06-2006 | Отправлено: 19:47 19-05-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sm32
    В батнике пишешь:  
    ftp -s:file.txt -v -i
     
    В file.txt:  
    open host ftp.****.by
    user
    password  
    cd stat  
    binary (если файлы статистики не текстовые)  
    mget *.*  
    quit  

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:57 19-05-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sm32 в чем заключается "читать статистику"?
    она там что, в файл складывается?
    тогда читай хэлп про пакетную работу ftp.exe...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:07 19-05-2007
    Angel_Ka



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В справочнике про reg query сказано, что у неё два возвращаемых кода: 0 - удача и 1 - неуд, а в двух разных местах видела проверку на код 2. Это была ошибка или ...?
    Подскажите, плз, а то надо проверку наличия куста сделать, а как пока не разберусь.

    Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 00:39 20-05-2007 | Исправлено: Angel_Ka, 14:16 20-05-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Angel_Ka
    А ты проверяй так:

    Код:
    if not %errorlevel%==0 echo not exists

    то есть, если код ошибки не ноль - значит не существует. Тогда не важно какой код у "не существует"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:44 20-05-2007
    euheny



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

    Всего записей: 4047 | Зарегистр. 22-11-2006 | Отправлено: 03:03 20-05-2007
    Elroir



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

    Код:
    echo %windir%

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



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

    Цитата:
    А ты проверяй так:
     
    Код:
    if not %errorlevel%==0 echo not exists
     
    то есть, если код ошибки не ноль - значит не существует. Тогда не важно какой код у "не существует"

    Биг сэнкс!
     
    А ежели наоборот - если раздел в регистри существует, то удалить?
     

    Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 07:54 20-05-2007 | Исправлено: Angel_Ka, 07:57 20-05-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Angel_Ka
    if not %errorlevel%==0 (echo not exist) else (reg delete "Раздел\подраздел")
    или:
    if %errorlevel%==0 reg delete "Раздел\подраздел"

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:18 20-05-2007
    Angel_Ka



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
     
    Биг сэнкс!
     
  • Поясните ещё, плз:

    Код:
    reg query "Раздел\подрадел" 2>nul && reg delete "Раздел\подрадел" /F >Nul

    и

    Код:
    reg query "Раздел\подрадел" >nul
    if %errorlevel%==0 reg delete "Раздел\подраздел" /F >Nul
     
    синонимы? В чём различие этих конструкций по исполнению?
     
    Добавлено:
     
  • Вот ещё дилетантский вопрос. А как можно было бы вот такую конструкцию:

    Код:
    If exist 2.log copy 2.log 1.log
    If exist 3.log copy 3.log 2.log
    If exist 4.log copy 4.log 3.log
    If exist 5.log copy 5.log 4.log

    записать в батник более цивильно?

  • Всего записей: 585 | Зарегистр. 20-05-2007 | Отправлено: 09:04 20-05-2007 | Исправлено: Angel_Ka, 10:26 20-05-2007
    wolf0425



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

    Цитата:
    синонимы? В чём различие этих конструкций по исполнению?  

    синонимы.
    в данном случае различий (кроме количества строк) нет, а вообще различия бывают - например в случае использования переменных.
     
     
     
    Добавлено:

    Цитата:
    записать в батник более цивильно?

    а чем текущий вариант не устраивает?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:14 20-05-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Закладки » Задачи на bat-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru