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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
     
    дело в том, что у меня временами пропадает ping на внешку,
    появляется после оключения-включения сетевого адаптера.
    Вот я и решил по результату пинга отключать сетевуху через запланированый батник,
    но дело в том, условие не выполняется полностью и сетевушка вкл-выкл в цикле.
     
    @echo on
    title Network connect check
    :start
    ping ukr.net -n 10 || DevCon restart PCI\VEN_13F0
    cls
    goto start
     
    вот я подумал посадить это дело на временную паузу, что бы не пересчелкивала моментально.

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 17:24 19-09-2008
    01MDM



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

    Код:
     
    @echo on
    title Network connect check
    :start
    ping -n 11 localhost 1>nul
    ping -n 1 ukr.net 1>nul || DevCon restart PCI\VEN_13F0
    cls
    goto start
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:29 19-09-2008 | Исправлено: 01MDM, 17:30 19-09-2008
    Mr_Hat



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

    Цитата:
    ping -n 11 localhost 1>nul

    объястни мне  "1>nul" ? плиз, а то я не въезжаю для чего оно нужно.
     

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

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 17:34 19-09-2008 | Исправлено: Mr_Hat, 18:02 19-09-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mr_Hat
     
    Чтоб не засорять консоль. Попробуй пропинговать с перенаправлением стандартного вывода в нуль и без него.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:47 19-09-2008
    Nuke142



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите со скриптом пожалуйста.
    Имеется:

    Код:
    start xxx.exe -параметры
    call yyy.exe
    xxx.exe -параметры2

    Задача в том чтобы запустить одну программу, и затем сразу вторую и после нее опять xxx.exe но с параметрами на закрытие.
    В итоге получается так:
    Запускается xxx.exe, потом yyy.exe.
    Третья строка сразу почемуто не выполняется. Только когда выключаеш программу yyy.exe - третья строка приводится в действие.
    Почему ? Мне нужно чтобы мгновенно все команды выпонлились в заданном порядке.

    Всего записей: 302 | Зарегистр. 03-04-2008 | Отправлено: 17:53 19-09-2008
    Elroir



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

    Цитата:
    то есть это очистка экрана консоли вроде cls только без вывода на экран результатов команды, верно ?

    Почти. Очистки экрана не происходит. Просто не появляется вывод результата команды.
     
    Nuke142
    Попробуй так:

    Код:
     
    start xxx.exe -параметры
    start yyy.exe
    start xxx.exe -параметры2
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:20 19-09-2008
    Nuke142



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Elroir, благодарю!
    Еще вопрос такой, как можно убрать "версию файла" с различных файлов ? в моем случае у ексешника.
    Может не совсем по теме.. но из bat-файла сделалал ексешник с помощью qbfc, а он предлагал заполнить версию файла, копирайты и т.п.

    в красном то, что мне не нужно. QBFC отказывается конвертировать в exe, если удалить все цифры из значения версии файла.

    Всего записей: 302 | Зарегистр. 03-04-2008 | Отправлено: 19:09 19-09-2008
    Elroir



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

    Цитата:
    как можно убрать "версию файла" с различных файлов ?

    Точно не знаю. Может быть, каким-нибудь редактором ресурсов, вроде Restorator-а.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:24 19-09-2008
    BuLLet3D

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет  
    Народ кто работал и пытался реализовать скрипт Getaccess.cmd описанный в этой статье http://www.osp.ru/text/print/302/176244.html Помогите разобратся как его заставить работать
    заранее пасиб

    Всего записей: 2 | Зарегистр. 09-09-2008 | Отправлено: 06:13 20-09-2008
    RaP1D



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, срочно надо!
     
    Есть 1 файл, в котором список:
    love
    death
    green
    white
    ...
     
    Нужно, чтобы батник обработал этот файл таким образом:
    "love",
    "death",
    "green",
    "white",
    ...

    Всего записей: 186 | Зарегистр. 29-12-2007 | Отправлено: 12:32 20-09-2008
    Nuke142



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А как организовать такое ?
    Нужно батником запустить 1.exe
    потом клиент делает какие-то операции и самостоятельно(без участия батника) запускает какую-то свою определенную программу 2.exe
    вот нужно чтобы батник отслеживал появление в процессах 2.exe и запускал 3.exe

    Всего записей: 302 | Зарегистр. 03-04-2008 | Отправлено: 12:35 20-09-2008
    king_stiven

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

    Код:
    @echo off
    for /f "usebackq tokens=*" %%c in ("about.txt") do (
        echo "%%c",>> about1.txt
    )

     
    Добавлено:
    Nuke142
    С помощь команды tasklist и паузы(смотреть в шапке) периодично(goto /?) проверять наличие процесса 2.exe и  
    if not errorlevel 1 start "" 3.exe
     (for /?)

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:29 20-09-2008
    Nuke142



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

    Всего записей: 302 | Зарегистр. 03-04-2008 | Отправлено: 15:45 20-09-2008
    Elroir



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

    Цитата:
    как сделать чтобы батник отследил когда клиент нажмет сочетание клавиш и выполнится нужное действие ?

    Никак. Батником это сделать невозможно.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:53 20-09-2008
    XXLIvan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые!
    Вот такая у меня проблема: есть текстовый файл, внутри которого есть текст:
    FK|2008.03|СЭД|1.33.X.5||
    FROM|****|**************|
    TO|*****|*******************|
    VLS|1|18.09.2008|17.09.2008|***************|
    Задача: необходимо выкусить дату выделенным жирным шрифтом и переместить этот файл в имеющуюся папку с выкушенной датой, но имеющей формат DDMMYYYY.
    P.S. Стуктура файла постоянная, т.е. дата всегда находится на 4 строке, с 7-го символа.
     
     

    Всего записей: 160 | Зарегистр. 15-03-2007 | Отправлено: 16:36 21-09-2008 | Исправлено: XXLIvan, 16:41 21-09-2008
    01MDM



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

    Код:
     
    @echo off
    setlocal
     
    for /f "skip=3 tokens=3 delims=|" %%i in (1.txt) do set "folder=%%i" && goto:1
    :1
    set "folder=%folder:.=%"
    move 1.txt "%folder%"
     

     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:14 21-09-2008 | Исправлено: 01MDM, 18:16 21-09-2008
    RaP1D



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Огромное спасибо! Работает как часы...

    Всего записей: 186 | Зарегистр. 29-12-2007 | Отправлено: 19:55 21-09-2008
    SageNS

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, плз, как батником можно решить следующую задачу: Есть ini-файл вида  
    Maximized = Yes
    mssccprj = *.sln
    OutputHeight  = 150
    Position_Toolbar  = -2, 46, 475, 79, 1280, 1024
    PrjWidth  = 543
    Как батником заменитьзначение OutputHeight на то, которое мне нужно?

    Всего записей: 12 | Зарегистр. 06-04-2008 | Отправлено: 20:14 21-09-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SageNS
    Несколько способов можно, например ориентируясь на строку "OutputHeight  = "

    Код:
    @Echo Off  
    set /p OutputHeight=Enter OutputHeight :
    for /f "usebackq tokens=*" %%c in ("1.txt") do (
        echo %%c | FIND /i "OutputHeight  = "
        if errorlevel 1 (
            echo %%c>> 2.txt
        ) else (
            echo OutputHeight = %OutputHeight%>> 2.txt
        )
    )
    del 1.txt
    ren 2.txt 1.txt
     

    или

    Код:
    @Echo Off  
    set OutputHeight=160
    for /f "usebackq tokens=*" %%c in ("1.txt") do (
        echo %%c | FIND /i "OutputHeight  = "
        if errorlevel 1 (
            echo %%c>> 2.txt
        ) else (
            echo OutputHeight = %OutputHeight%>> 2.txt
        )
    )
    del 1.txt
    ren 2.txt 1.txt
     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 22:10 21-09-2008
    01MDM



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

    Код:
     
    @echo off
    setlocal
    set "new=202"
    sed -i "s;\(OutputHeight = \)\(.*\);\1%new%;g" test.ini
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:11 21-09-2008 | Исправлено: 01MDM, 22:17 21-09-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