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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    э... а какие проблемы? что -  
    start "title1" script1.cmd
    уже не запускает параллельно работающее окно?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:41 28-02-2009
    K_AHTOH



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    Запускает наверно... Я про нее и спрашивал .
     
    Спасибо.
     
    Добавлено:
    Нет все же эту комманду надо как то по другому использовать...
    Скрипт в итоге из шедулера запускается только 1 почемуто файл со списком обработанных ложится прямо возле этого общего пусковика.  
    Я так подозреваю что система не дала открыть еще один сеанс ...
    Т.е. 1 общий пускатель 2. первый скрипт и все дальше ничего не работает.
     
    Добавлено:
    Вот общий запускатель :  

    Код:
    start "Старт 1 парсера"  "D:\1926\parser\parser1.cmd"
    start "Старт 2 парсера" "D:\2090\parser\parser2.cmd"

    Всего записей: 155 | Зарегистр. 20-10-2006 | Отправлено: 12:49 28-02-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Скрипт в итоге из шедулера запускается только 1 почемуто файл со списком обработанных ложится прямо возле этого общего пусковика.
    так он и должен ложиться там, где был текущий каталог в момент его запуска - никаких команд смены каталога в скрипте нет.
     
    А куда ему надо ложиться?  
    или ты хочешь два разных лога обработанного у параллельно запущенных батников?
     
    И какой смысл запускать параллельно много копий скрипта? быстрее парситься не будет - оно или в проц или в диск упирается.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:30 28-02-2009
    K_AHTOH



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

    Цитата:
    И какой смысл запускать параллельно много копий скрипта?

     
    Парсеры запускаются на сервере с двумя 4-х ядерными Ксенонами. Поэтому параллельное исполнение имеет смысл. 1 парсер работает на нем в среднем 40 минут. Два - 45.  
     
    К сожалению сейчас в экспериментах ограничен. Поэтому придется мне подождать понедельника.

    Всего записей: 155 | Зарегистр. 20-10-2006 | Отправлено: 18:32 28-02-2009
    johnmar



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как во всех файлах с именем default.htm в каталоге C:\temp и всех его подкаталагах добавить ко всем url,
    заканчивающимся на цифры,
    строку
     
    Код:
    /default.htm

    ?
    например:
     
    Код:
    <a href ="../5/31/210">210</a>

     должно замениться на  
     
    Код:
    <a href ="../5/31/210/default.htm">210</a>

    Всего записей: 30 | Зарегистр. 28-03-2008 | Отправлено: 23:22 28-02-2009 | Исправлено: johnmar, 23:30 28-02-2009
    Maza_Faka



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

    Цитата:
    Как во всех файлах с именем default.htm в каталоге C:\temp и всех его подкаталагах добавить ко всем url,  
    заканчивающимся на цифры,  
    строку

    Попробуй так:

    Код:
     
    @Echo Off
     
    For /R c:\Temp %%A In (default.htm) Do (
        Sed "s/\(<a href.*[0-9]\)\"/\1\/default.htm\"/g" < "%%A" > "%%~dpA\out.tmp"
        Del /F /Q "%%A"
        Ren "%%~dpAout.tmp" "%%~nxA"
    )
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:42 01-03-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    K_AHTOH
    что-то мне говорит, что два запущенных в нынешнем виде скрипта - начнут парсить один и тот же файл

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:03 01-03-2009
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всем привет.
    есть такая задача:
    много логов IIS - папки вида W3SVCxxxxxxxx а в них файлы exYYMMDD.log YY=год, MM=месяц, DD=день.
    ex090101.log
    ex090102.log
    ex090103.log
    ...
    ex090201.log
    ex090202.log
    ex090203.log
    ....
     
    нажно последовательно заходить в каждую папку и выполнять архивирование помесяцам года.
    Server01_W3SVCxxxx0_0901.7z
    Server01_W3SVCxxxx0_0902.7z
    Server01_W3SVCxxxx1_0901.7z
    Server01_W3SVCxxxx1_0902.7z
    Server01_W3SVCxxxx2_0901.7z
    Server01_W3SVCxxxx2_0902.7z
     
    W3VCxxxxx - я сам могу указать в файле получив из dir, и потом это же использовать в образовании имени архива.
    тут больше непонятно как пробежаться по месяцам года и выполнить с каждым месяцем архивацию.
     
    может кто уже делал похожее ?
     
    спасибо.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 17:28 01-03-2009 | Исправлено: slech, 17:30 01-03-2009
    K_AHTOH



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

    Цитата:
    начнут парсить один и тот же файл  

     
    Да нет... Пути к источникам у каждого парсера свой.  Все проверенно. Работает.

    Всего записей: 155 | Зарегистр. 20-10-2006 | Отправлено: 19:25 01-03-2009 | Исправлено: K_AHTOH, 19:27 01-03-2009
    01MDM



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

    Код:
     
    @echo off
    for /d %%i in (W3SVC*) do (
         pushd "%%i"
         set folder=%%i
         for /l %%i in (1,1,12) do call:arch %%i
         popd
    )
    goto:eof
     
    :arch
    set mon=0%1
    7z a Server01_%folder%_09%mon:~-2%.7z ex09%mon:~-2%*.log 2>nul
     

     
    PS. Не проверял.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:10 02-03-2009 | Исправлено: 01MDM, 11:06 02-03-2009
    GGS



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, какую строку надо вставить в *.bat, чтобы выполнилась функция "Показать рабочий стол"?
    P.S. Не путать с выполнением "Свернуть все окна.scf"

    Всего записей: 1037 | Зарегистр. 25-03-2002 | Отправлено: 16:42 02-03-2009
    Maza_Faka



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

    Цитата:
    функция "Показать рабочий стол"?

    А ручками эта команда, как вызывается?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:05 03-03-2009
    GGS



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

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

    Вот это я и хочу узнать. Через запуск функций какой-нибудь DLL, наверное.

    Всего записей: 1037 | Зарегистр. 25-03-2002 | Отправлено: 14:36 03-03-2009
    TechnicsKuzya



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может кому пригодится, тут описан авторский скрипт для сборника обновлений...
     
    P.S. Не знаю, может способ определения языка операционной системы в пакетном файле я придумал не совсем корректный, но работает на 100%

    Всего записей: 495 | Зарегистр. 02-02-2008 | Отправлено: 14:51 03-03-2009 | Исправлено: TechnicsKuzya, 15:44 03-03-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GGS
    Насколько я знаю функция "Показать рабочий стол" и "Свернуть все окна.scf" это одно и то же.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 19:50 03-03-2009
    Serhiy123



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GGS
    Имхо, "Показать рабочий стол" = "Свернуть все окна.scf" = Win+D
    Посему создаем файлик minimize.scf:

    Код:
     
    [Shell]
    Command=2
    IconFile=explorer.exe,3
     
    [Taskbar]
    Command=ToggleDesktop
     

    а в скрипте пишем:

    Код:
     
    start minimize.scf
     

    Проверил - работает.
    PS - строку  "IconFile=explorer.exe,3" в данном случае можно выбросить.

    Всего записей: 126 | Зарегистр. 05-09-2002 | Отправлено: 20:22 03-03-2009 | Исправлено: Serhiy123, 23:05 03-03-2009
    RomanF



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть всеми известный файл Hosts. В нём имеются записи формата
    <ipАдрес> <проблеы или табуляторы> <домен>
    Код:
    127.0.0.1    localhost

    Я добавляю в этот файл запись данного формата, но перед добавленим хочу проверить, если ип адрес старый и новый различные, то заменить текущую запись на новую, иначе я пропускаю и выдаю соответствующее сообщение (см. ниже)
    Требуется заменить данную запись на запись с другим IP адресом например данную на
    Код:
    127.0.0.44    localhost

    При этом есть вероятность что может присутствовать несколько доменов с одним ip адресом, это в случае, если кто то захочет поменять только IP.
     
    Изначально я имею в одной переменной имя домена, в другой ip адрес, ему соответствующий (уже новый ип адрес).
    Для проверки делаю во так:

    Код:
    for /f %%i in ('findstr /c:"%host%" %systemroot%\system32\drivers\etc\Hosts') do @echo  Ресурс %host% уже прописан. Текущий IP: %%i

     
    Помогите пожалуйста.

    Всего записей: 67 | Зарегистр. 13-07-2007 | Отправлено: 23:36 03-03-2009 | Исправлено: RomanF, 23:39 03-03-2009
    GGS



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven, Serhiy123
    Про вариант с *.scf я знаю и не он меня интересует (см. P.S. в моём посте выше).
     

    Всего записей: 1037 | Зарегистр. 25-03-2002 | Отправлено: 03:23 04-03-2009
    K_AHTOH



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GGS
    Если это не свернуть все окна то, что это? Может пример API функции хотя бы покажите?

    Всего записей: 155 | Зарегистр. 20-10-2006 | Отправлено: 08:17 04-03-2009
    Maza_Faka



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

    Цитата:
    перед добавленим хочу проверить, если ип адрес старый и новый различные

    Как я понял, проверять нужно и IP-адрес и хост? Боюсь, что придётся использовать сторонние утилиты: sed, grep and etc..., так, как придётся искать, используя регулярные выражения.
     
    GGS

    Цитата:
    Про вариант с *.scf я знаю и не он меня интересует

    Что конкретно вас интересует? Эмуляция нажатий клавиш?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:28 04-03-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