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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    В целом - стоит продолжать разитие vbs-ки?
    За критику и указание на ошибки - спасибо отдельной строкой.
     
    Vladins
    А в чем криминал обычного приоритета батника?

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:01 05-07-2010
    Vladins

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

    Всего записей: 68 | Зарегистр. 22-05-2010 | Отправлено: 21:16 05-07-2010
    ComradG



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

    Код:
    file_1.mp3, file_2.mp3 ... file_n.mp3

    будет тормозить сильнее, нежели

    Код:
    1_file.mp3, 2_file.mp3 ... n_file.mp3

    Таково устройство ntfs драйвера, и с этим, пожалуй, ничего не поделаешь. А именовать аудиофайлы по дате - заставит тормозить систему еще сильней. Так что не думаю, что дело в приоритете.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:27 05-07-2010
    Vladins

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ComradG
    Имена файлов тут не причем - они какими были такими и остаются (меняется только расширение .wav на .mp3), а низкий приоритет нужен чтобы на одноядерном процессоре можно было и еще что то делать а не ждать сутки окончания конвертации. Я выше написал как я делаю низкий приоритет, но думаю что можно это сделать более удобно.

    Всего записей: 68 | Зарегистр. 22-05-2010 | Отправлено: 21:36 05-07-2010
    wolf0425



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

    Цитата:
    В целом - стоит продолжать разитие vbs-ки?  
    да хз, если видишь что там можно развить, не особо напрягаясь - развей.
    Делать навороченный архиватор из этой vbs смысла нет точно, так что может имеет смысл не развивать, а ещё кастрировать. хотя и так недлинная.
     
     

    Цитата:
    Таково устройство ntfs драйвера, и с этим, пожалуй, ничего не поделаешь.
    с этим оно тормозит только на открытии файла, а на перекодировке - во время всей обработки отжирает 100% процессора, не давая нормально работать остальным задачам с равным приоритетом.
     
    Vladins
    Цитата:
    батник wav to mp3 переименовываю в 1.bat а потом запускаю второй батник в той же папке с таким содержимым:  
    я в таких случаях обычно себя рекурсивно перестартую, с добавлением ключика. ничего не переименовывая.
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:37 05-07-2010 | Исправлено: wolf0425, 21:40 05-07-2010
    Vladins

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

    Всего записей: 68 | Зарегистр. 22-05-2010 | Отправлено: 21:44 05-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Про устройство ntfs драйвера - это касательно имен, а не процесса перекодировки. А на счет 100% загруженности во время конвертации, дык это lame.

    Цитата:
    Делать навороченный архиватор из этой vbs смысла нет точно

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

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 21:51 05-07-2010
    wolf0425



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

    Цитата:
    wolf0425 можно пример...  

    Код:
    @echo off
    pushd "%~dp0"
     
    if /i .%1 equ .-scan goto :scan
    if /i .%1 equ .-back goto :back
    if /i .%1 equ ./d    goto :delb
     
    if /i ~%~nx1 equ ~indexdate.shtml goto :scan
    if /i ~%1 equ ~ start "%time%" /min /low %~s0 -scan & goto :eof
    exit
     
    вот шапка от живого батника, вроде ничего лишнего не оторвал
    при тупом запуске без ключа - перезапускает себя с минимальным приоритетом и ключем.
     
    Добавлено:

    Цитата:
    А на счет 100% загруженности во время конвертации, дык это lame.  
    дык проблема не в собственно 100%, а в том что у этих 100% приоритет слишком низкий и прочие задачи  с норм приоритетом - тормозят почем зря. перезапускаешь батник с /low - и того, что 7za из батника выжирает те же 100% - почти не чувствуется, если не гамать а просто работать.
     
    Добавлено:

    Цитата:
    что хотелось тебе когда-то средствами системы пожать файлы, вот я и представил тебе пример, что можно.
    ну, да, жмет, действительно. дорабатывать только смысла мало - это же скрипт на аварийный случай, когда нормальный софт тащить на комп нельзя. В смысле дорабатывать можно только в сторону уменьшения функционала чтоб меньше батник тащить, но он  вроде и так небольшой. или в сторону совместимости - оно точно на голой win2k заработает?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:54 05-07-2010 | Исправлено: wolf0425, 22:04 05-07-2010
    ComradG



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

    Цитата:
    перезапускаешь батник с /low - и того, что 7za из батника выжирает те же 100% - почти не чувствуется, если не гамать а просто работать

    Вот так бы сразу.
    Ладно фиг с этой vbs, главное, что все мы знаем теперь, что жать файлы срествами системы можно.
    Подкиньте идей, чего еще не обсуждалось.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:03 05-07-2010
    Vladins

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Пишет "Не удается найти указанную метку пакетного файла - scan"

    Всего записей: 68 | Зарегистр. 22-05-2010 | Отправлено: 22:07 05-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vladinsp
    Дык создай ее.
     
    Добавлено:
    Тебе ведь ясно дали понять, что это пример. А goto ведет на метку в пакетном файле.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:07 05-07-2010
    Vladins

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

    Всего записей: 68 | Зарегистр. 22-05-2010 | Отправлено: 22:16 05-07-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vladins
    как вариант
    START "" /LOW /B "C:\Program Files\1\clienc\lame.exe" --cbr --strictly-enforce-ISO --noreplaygain -b 160 -q0 "%%~ni.wav" "D:\temp\outputbp\%%~ni.mp3"
    то есть в своём батнике замени соответствующую строку на эту
     
                   lorents
    Без комментариев. Уникальный случай за 4 года.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 22:21 05-07-2010 | Исправлено: king_stiven, 22:26 05-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vladins
    В консоли набирал hh ntcmds.chm? Набири, в этом справочнике все, что нужно "юному" батописателю. Ну а если объяснять на пальцах то, если  у тебя есть инструкция

    Код:
    goto:scan

    то она указывает на метку, на которю должен осуществляться переход. В данном случае на scan:

    Код:
    goto:scan
    ...
    :scan
    ...

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:22 05-07-2010
    Vladins

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

    Цитата:
    hh ntcmds.chm

    Супер!
     
     

    Всего записей: 68 | Зарегистр. 22-05-2010 | Отправлено: 22:38 05-07-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vladins
    тогда
    START "" /LOW /WAIT /B "C:\Program Files\1\clienc\lame.exe" --cbr --strictly-enforce-ISO --noreplaygain -b 160 -q0 "%%~ni.wav" "D:\temp\outputbp\%%~ni.mp3"

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 22:47 05-07-2010
    BVV63



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

    Цитата:
    Почему-то(?) переменная получается:  
    " C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D: A: C: D: E: C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D: C: D:". Хотя, я рассчитывал на то, что она будет " C: D:".

    Спасибо всем, кто откликнулся. Причина оказалась тривиальна: "Сам дурак!" . "Отлаживая" батник, я раз за разом запускал его из одной и той же копии консоли. Вначале занимался другими его фрагментами, а когда добрался до данной переменной, она уже к тому времени разраслась, а я, балда, и не понял сразу из-за чего.
    Ладно, стоит запомнить, дабы как-нибудь на эти грабли не наступить повторно.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 06:03 06-07-2010 | Исправлено: BVV63, 06:06 06-07-2010
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
    В начале батника пишешь SETLOCAL, а в конце ENDLOCAL и сфера действия переменных станет ограничена текущей копией запущенного батника...

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 07:32 06-07-2010
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
    Setlocal ограничивает жизнь переменных жизнью батника:

    Код:
     
    @echo off
    setlocal
    ...
     

     
     
    Добавлено:
    yurkesha, не заметил

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:34 06-07-2010
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такой вопрос. Допустим, имеется переменная Var=1234567890. Ну, брать её по частям и пихать эти части в переменные я уже научился. А напрямую, не используя промежуточные переменные, работать с её составляющими можно? Напр., одну из цифр заменить, сравнить с константой, увеличить на единицу и т. п. В описании команды Set я не нашёл подобной возможности.
     
    Добавлено:
    Выводить эхом фрагменты переменной тоже не вопрос. Можно ли изменять эти фрагменты?
     
    Добавлено:
    И ещё. Как можно узнать длину переменной?

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 09:56 06-07-2010 | Исправлено: BVV63, 10:16 06-07-2010
       

    Страницы: 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru