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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 12:51 20-02-2011
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    lorents
    for /F "tokens=1,2 delims= " %a in ('dir /TW %FILE% ^| findstr /B /R "[0-9]"') do @echo %a %b
     
    Добавлено:
    king_stiven
    По-моему это нельзя не только для батников, а вообще для всех окон.

    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:54 20-02-2011 | Исправлено: vu1tur, 12:54 20-02-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vu1tur
    Спасибо, сейчас посмотрю

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 13:01 20-02-2011
    res2001



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

    Цитата:
    По-моему это нельзя не только для батников, а вообще для всех окон.

    Для батников нельзя, а вообще можно.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:34 20-02-2011
    wolf0425



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

    Цитата:
    а вообще можно.  
    а приведешь пример программы с разноцветным заголовком?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:18 20-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Цитата:
    а приведешь пример программы с разноцветным заголовком?  

    Думаю такое возможно, если не использовать стандартные окна Windows, а вот надпись на кнопке в панели задач я думаю невозможно сделать другим цветом.
     
    Примеры программ, где не используются стандартные окна Windows:
    UIMain.exe - «Билайн Интернет Дома»
    Заголовок сделан в виде цветных картинок, можно хоть текст любым цветом, хоть изображения.

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 16:21 20-02-2011
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    res2001

    Цитата:
    Для батников нельзя, а вообще можно.

    Пример?
    На сколько я помню, кнопки панели задач (не тулбары) не могут быть owner drawn.

    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:25 20-02-2011
    porky777



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые ALL! Доброго Вам времени суток.
     
    Помогите мне решить задачу такого вида:
     
    Необходимо проверить количество файлов в каталогах:
     
    SDK\SORT\38\3nn\mmyy\    - используя следующую маску файлов    R*Dddmmyy*
     
    где:
     
    nn - фиксированый список изменяющихся значений. Вот массив значений (02,04,06,08,10,18,20,25,30,38,39,44,54,66)  
     
    т.е. в папке 38 будет 14 папок
          SDK\SORT\38\302\mmyy\
                              \304\mmyy\
                              .......
                              \366\mmyy\
     
    mm - месяц
    yy - две последних цифры года
     
          SDK\SORT\38\302\0111\
          SDK\SORT\38\302\0211\
          SDK\SORT\38\302\0311\
          ...........
          SDK\SORT\38\302\1211\
     
    dd - день в формате (01,02,03,....31)
     
    Значения dd,mm,yy задаются с клавиатуры для дальнейшего использования в маске и для подстановки в имя папки.
     
    Следует узнать:
     
    Количество файлов в каждой папке mmyy по указанной дате.
     
    Количество файлов в каждой папке mmyy за предыдущую дату.
     
    Вывести значения количества файлов в папках в таком виде:
     
             Сегодня       Вчера
    02 -  
    04 -
    06 -
    08 -  
    10 -
    18 -
    20 -
    25 -
    30 -
    38 -
    39 -
    44 -
    54 -
    66 -
     
     
    Заранее спасибо вам ребят. Если что не ясно, я постараюсь объяснить

    Всего записей: 2 | Зарегистр. 20-02-2011 | Отправлено: 18:46 20-02-2011 | Исправлено: porky777, 18:53 20-02-2011
    wolf0425



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

    Цитата:
    Помогите мне решить задачу такого вида:  

    это реальная задача или препод задал?
     
    1. загоняешь в переменные day1 mon1 year1 сегодняшнюю дату в формате dd mm yy
    2. читаешь  шапку темы и находишь способ загнать в day2 mon2 year2 вчерашнюю дату
     
    после чего делаешь  

    Код:
    for %%a in (02,04,06,08,10,18,20,25,30,38,39,44,54,66)  do (
      for /f %%c in (' dir /a-d /b SDK\SORT\38\3%%a\%mon1%%year1%\R*D%day1%%mon1%%year1%* ^| find /c /v "" ') do 0>nul set /p="%%a - %%c"
      for /f %%c in (' dir /a-d /b SDK\SORT\38\3%%a\%mon2%%year2%\R*D%day2%%mon2%%year2%* ^| find /c /v "" ') do echo. %%c
    )
     
    будут сложности  - спрашивай.
    код не проверял, но вроде должен работать.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:16 20-02-2011 | Исправлено: wolf0425, 21:44 20-02-2011
    porky777



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача реальная. Спасибо. Сейчас попробую.

    Всего записей: 2 | Зарегистр. 20-02-2011 | Отправлено: 07:50 21-02-2011
    res2001



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

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

    Собственно, имел в виду заголовок программы, а не кнопку на панели задач.
    Первая часть вопроса была про "титле батника"

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 10:21 21-02-2011
    wolf0425



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

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

    так и я имел в виду заголовок окна - который btw тоже системой рисуется в соотвествии с настройками виндовой темы, а не кнопку на панели задач.
    программы со скрытым заголовком и разноцветной надписью картинками сверху окна - как пример разноцветного заголовка не канают.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:24 21-02-2011 | Исправлено: wolf0425, 10:28 21-02-2011
    res2001



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

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 10:32 21-02-2011
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пытаюсь переименовать кучу файлов и туплю.
     
    Есть файлы maguttec????????????
    [?] - один символ
     
    Пытаюсь их переименовать во что-то вроде tec????????????
     
    Так вот, команда ren maguttec???????????? tec????????????
    превращает их в tecuttec????????????
     
     
    Каким образом можно массово обрезать "префикс"  magut
    ?

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 20:46 21-02-2011
    Misha1989



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BagaBaga
    Цитата:
    Каким образом можно массово обрезать "префикс"  magut  

    set "A1=maguttec123"
    set "A2=%A1:magut=%"
    ren "%A1%" "%A2%"
     
    Принцип такой и всё это дело в цикл запихать. А с циклами я не дружу.

    Всего записей: 359 | Зарегистр. 22-03-2010 | Отправлено: 21:00 21-02-2011 | Исправлено: Misha1989, 21:01 21-02-2011
    inock

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плз, есть ли под win аналог команды head.  
    То есть, например нужно поймать первую строку вывода команды
     
    dir /b /o-D filename.*
     
    Или каким-то другим способом получить имя самого свежего файла, соответствующего заданной маске.

    Всего записей: 37 | Зарегистр. 06-12-2004 | Отправлено: 09:22 22-02-2011
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:23 22-02-2011
    inock

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

    Цитата:
    dir /?

     
    Перечитал еще раз. Просветление не настало.

    Всего записей: 37 | Зарегистр. 06-12-2004 | Отправлено: 09:29 22-02-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    inock
    FOR /F "tokens=*" %%i IN ('dir /o:-d /b') DO (
    echo %%i
    goto :eof
    )
    подредактируешь

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 10:12 22-02-2011
    inock

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

    Цитата:
    подредактируешь

     
    А вот это - да. Уйти после первого прохода в eof - это я не догадался.  
    Спасибо )

    Всего записей: 37 | Зарегистр. 06-12-2004 | Отправлено: 10:26 22-02-2011
       

    Страницы: 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 101 102 103 104 105 106 107 108

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru