Статьи
Главная » Статьи » Кодирование/конвертация видео - инструкции/уроки » Теория/инфа по видео и его кодированию

| Добавил: Koks (18.05.2013) |

Пакетная обработка файлов с помощью CMD/BAT скриптов

Данный материал составлен для бесплатного ознакомления, любое его копирование в каких-либо целях запрещено и является нарушением авторских прав. Авторство принадлежит сайту minisite.3dn.ru (minisite.gq), так что в случае обновления или дополнения инструкции, актуальная версия будет всегда только на minisite.


 

Могут быть внесены изменения и дополнения.

Важное примечание от 18.08.15 - в будущем планируется весомое дополнение инструкции, а также важные изменения в некоторых моментах (в частности переход с многострочных на более простые и короткие однострочные скрипты).

Последнее обновление: 07.07.13


I. Теория.

1. CMD/BAT скрипты, что это такое?

Это пакетные файлы, которые можно создать в текстовом редакторе, чаще в блокноте, для этого лучше использовать Notepad2 или еще лучше Notepad++, т.к. стандартный блокнот имеет слишком скудный функционал и ваще он менее удобен. Также существуют специальные редакторы, ну это уже дело вкуса. Лично я пользуюсь в основном Notepad++, иногда для простых операций Notepad2, а как вспомогательный инструмент использую Excel, в основном для создания нумерации, причем очень извращенским способом) просто пока не нашел способа получше)

Эти скрипты внутри содержат построчный набор команд, т.е. 1 строка = 1 действие, состоящее из 1 или нескольких команд.

Могут быть использованы как команды из командной строки, так и команды консольных программ и приложений.

При запуске код скрипта выполняется в командной строке. После окончания всех действий командная строка закрывается, т.е. считай скрипт сделал дело и закрылся.

CMD/BAT скрипты имеют расширение .cmd или .bat соответственно. Для его создания при сохранении в блокноте достаточно дописать соответствующее расширение в конце или потом сменить расширение(просто переименовать), если вы не сделали этого сразу (например сохранили как .txt или вообще получился файл без расширения и отображается просто как "файл").

 

2. Зачем нужны эти скрипты?

Ответ прост - упростить и автоматизировать процесс выполнения однотипных и надоедливых операций)

 

3. А не геморойнее ли создавать эти скрипты, чем выполнять все операции вручную? Не придется ли каждый раз делать скрипт с нуля, какой тогда в этом смысл?

Да, по началу разбираться со скриптами, как их делать, а также в конечном итоге написание самих скриптов - гемор еще тот)

Но, сделав их раз вам не придется делать снова точно такие же скрипты, и уж тем более вы забудете о мороке с ручной долбежкой одних и тех же действий)

Смысл в том чтоб создать один раз нужные вам шаблоны скриптов и больше к этому не возвращаться. Т.е. если вам нужно автоматизировать какую то 1 операцию, то вы делаете 1 шаблонный скрипт, если много, ну соответственно делаете нужное вам количество разных шаблонов. Также могут быть универсальные шаблоны, из которых можно создавать путем быстрого редактирования(во всех текстовиках есть функция глобальной замены слов/выражений) другие шаблоны или еще их можно назвать подшаблонами. Все зависит только от вашей фантазии и смекалки)

Я рекомендую создавать именно шаблоны, особенно для однотипных операций, которые вы будете проводить еще не раз. Т.к. потом вы будете просто использовать их копии в конкретных случаях, дабы не запороть оригиналы. А как ясно из самого названия "Шаблон", они создаются так, чтобы они быстро и легко редактировались для конкретных случаев(опять же опция глобальной замены вам в руки).

 

4. CMD или BAT, что выбрать?

По сути разницы в большинстве случаев нет, выполняют одну и туже задачу, работают одинаково, одни и теже команды. Просто bat это более старый формат и пришел от DOS, а CMD более новый, пришел вместе с Windows, хотя последний должен быть лучше и с расширенными возможностями. Они обратно совместимы, хотя не на 100%. Исходя из логики можно выбрать то что поновее, т.е. cmd. Хотя если у вас с ним вдруг возникнут проблемы вы всегда можете переименовать расшерение с .cmd на .bat, хотя врятле у вас возникнут проблемы...

 

5. Почему статья в разделе кодирования видео?

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

 

II. Основы использования.

Напомню что все команды выполняются построчно, если ток они специально не должны быть в 1 строке.

1. Пути.

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

Абсолютный путь идет от корневого каталога диска до текущего файла/папки, имеет вид типа "D:\папка\файл.txt"

Относительный путь же работает в текущей директории(папке), имеет вид типа "файл.txt", также в относительных путях можно использовать подпапки, т.е. вида "папка\файл.txt" - указывает на файл, находящийся в подпапке текущей директории. Относительные пути могут быть использованы как для начальных(чо открыть) так и для конечных(чо куда сохранить) файлов. Очень удобно сохранять с помощью относительных путей в подпапки(создаются автоматически).

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

 

2. Делаем относительные пути к прогам/приложениям.

Для этого нам нужно всего 1 раз прописать полный путь к нужной нам проге/приложению в переменные среды Windows.

В Windows 7 есть такой вариант пути в переменные среды: заходим в Свойства компа(правой кнопкой по компу на рабочем столе или из пуска и нажимаем Свойства) - Дополнительные параметры системыВкладка Дополнительно - Переменные среды:

Конечно в переменные среды можно зайти и по другому пути, например через панель управления, но там ваще глаза разбегаются куда жать)

Здесь в системных переменных находим переменную Path(путь) и нажимаем изменить, дописываем в конце полный путь до проги/приложения, т.е. откройте папку где находится прога и просто скопируйте ее путь, дописывать сам файл проги в путь не надо. Пути разделяются символом ;

Потом в скриптах чтоб использовать прогу просто пропишите ее название (должно совпадать с именем исполняемого файла), расширение типа .exe можно не писать, если ток в папке нет других файлов с таким же именем но с другим расширением(особенно другие исполняемые файлы), как правило их нет. Т.е. если в папке проги исполняемый файл называется прога.exe то в скрипте вы пишите просто прога.

 

III. Основные команды.

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

HELP - выводит полный список команд командной строки.

HELP команда - выводит более подробное описание той или иной команды и список ее подкоманд (если есть). Например help pause.

команда /? - тоже выводит более подробное описание той или иной команды и список ее подкоманд (если есть). Например pause /?.

 

@echo off - не показывать команды скрипта, @ в начале значит также не показывать саму команду echo. Относится ток к выполняемым командам, а не к выводимым сообщениям. Добавлять в начало скрипта чтоб скрыть все выполняемые команды, или же перед какими то определенными командами, чтоб скрыть ток их.

echo текст - вывод какого-либо сообщения на экран. Т.е. echo hello выведет на экран сообщение hello. Можно использовать для вывода на экран каких-нить вспомогательных сообщений или просто побаловаться)

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

 

del "Путь к файлу или его имя" - как можно догадаться удаляет файлы. Обязательно должно быть указано расширение файла! Кавычки ставить обязательно только в случае если в имени файла(или пути к файлу) присутствуют пробелы. Можно применять символ * чтоб удалить группу каких то файлов, имеющих схожие названия/расширение и т.д., также можно использовать вместо расширения файла, с точкой или без неважно. Можно писать сразу несколько файлов, т.е. не нужно для каждого файла отдельно писать команду del. Файлы должны быть разделены пробелом, также в качестве разделителя можно использовать запятую или точку с запятой(;) с пробелом или без. Но лучше использовать пробелы, как минимум так красивее) а ваще лишние знаки это лишний мусор в коде, могут мешать, в т.ч. при глобальной замене.

Примеры: если файлы заканчиваются например на file.txt то неважно писать ли file.* или file*

del "*log.txt" удалит все файлы в текущей директории(папке) с расширением .txt и заканчивающиеся на слово log. А если например del "test\01 log.txt" то удалится файл 01 log.txt, находящийся в подпапке test текущей директории.

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

Просмотров: 4167 | Рейтинг: 5.0/2

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Опросы

В каком качестве(типе видео) и разрешении вы предпочитаете смотреть аниме?
Всего ответов: 6

Друзья сайта

    щас нету)

Реклама

нету рекламы :)

Статистика