Только самые ленивые не поднимают эту горячую тему, поэтому и я написал статью.

Одна из рекомендаций чем занять себя в самоизоляции - самообразование или самообучение.
Я давно занимаюсь самообразованием, сейчас решил немного автоматизировать процесс.

О чем речь. Есть некие бесплатные или платные курсы. Я привык всегда сохранять для себя материал на будущее. Файлы - видео, картинки и прочее - я скачиваю с помощью давно и честно купленной программы IDM (Internet download manager). С этим думаю все понятно.

Здесь тема другая: автоматизировать процесс раскладки скаченных файлов по папкам. Но перед этим папки надо создать! Об этом и идет речь в статье.

Можно вручную создать кучу директорий типа Часть 1 и т.д., но от такой работы мне всегда становится как-то нудно на душе. Родилась идея разработать фильтр для TextPipe с целью универсального способа создания директорий одним пакетом.

Вспоминаем основы ДОС. Директория создается командой MKDIR. Для того, чтобы создать несколько директорий сразу надо написать исполняемый BAT файл.

Есть тонкости!

Если написать команду
MKDIR Часть 1
то будет создано две директории Часть и 1. Нам этого не надо.

Лайфхак для этого. Временно заменить пробелы символом подчеркивания _. А после создания директорий в любом файл менеджере массово заменить подчеркивание _ на пробел

Вторая тонкость будет раскрыта позднее.

Фильтр состоит из четырех групп и они заключены в комментарии.

1. Начинаем с извлечения названий разделов, больше нам ничего не надо.
У вас может быть свой случай, у меня каждый нужный раздел начинался с <div class="link title"
Соответственно эти строки и были извлечены.
После чего извлеченный текст почистил: удалил ведущие пробелы и HTML тэги. Остались только названия разделов, каждый на отдельной строке.
Сразу заменил мягкий перенос жестким.

Должно получиться нечто подобное :

Знакомство
Введение в тему
и т.д.

2. Теперь перехожу к формированию набора команд MKDIR.
Для удобства перед разделами добавляю номера.
И заменяю пробелы в названии подчеркиванием _.

В итоге должно получиться:

MKDIR 1 Знакомство
MKDIR 2 Введение_в_тему
и т.д.

3. Теперь надо удалить некорректные символы, те, которые не могут быть на директории.
Это символы двоеточие :, кавычки " и другие.

4. И теперь вишенка на торт - вторая обещанная тонкость.
В самое начало создаваемого нами файла надо добавить chcp 1251 >nul ! Это для того, чтобы директории корректно создавались с русскими буквами.

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

Всем успехов в самообразовании!

Скачать архив с фильтром Скачать архив с фильтром

--------------------

Filter List
-----------
Filter options
| [ ] Log to file
| [ ] Append to logfile
| Log filename:
| Threshold 0
| [ ] Log comment filters
|
|--Input from clipboard
| [ ] Unicode input
|
|--Comment...
| | Извлекаю названия разделов
| |
| |--Extract lines matching [<div class="link title"]| | [ ] Include line numbers
| | [ ] Include filename
| | [ ] Match case
| | [ ] Count matches
| | Pattern type: 0
| | [ ] UTF8 Support
| | [ ] Ignore empty matches
| | Context before: 0
| | Context after: 0
| |
| |--Remove blanks from Start of Line
| |
| |--Remove HTML and XML
| |
| +--Perl pattern [\n] with [\r\n]| [ ] Match case
| [ ] Whole words only
| [ ] Case sensitive replace
| [ ] Prompt on replace
| [ ] Skip prompt if identical
| [ ] First only
| [ ] Extract matches
| Maximum text buffer size 4096
| [ ] Maximum match (greedy)
| [ ] Allow comments
| [X] '.' matches newline
| [ ] UTF-8 Support
|
|--Comment...
| | Формирование MKDIR
| |
| |--Add line numbers
| | Start line 1
| | Increment 1
| | [ ] Don't increment on blank lines
| | [X] Don't number blank lines
| | Format %d
| | [X] Don't reset on end of file
| |
| |--Replace [ ] with [_]| | [ ] Match case
| | [ ] Whole words only
| | [ ] Case sensitive replace
| | [ ] Prompt on replace
| | [ ] Skip prompt if identical
| | [ ] First only
| | [ ] Extract matches
| |
| +--Add left margin [MKDIR]|
|--Comment...
| | Удаление некорректных символов
| |
| +--Perl pattern ["|:] with []| [ ] Match case
| [ ] Whole words only
| [ ] Case sensitive replace
| [ ] Prompt on replace
| [ ] Skip prompt if identical
| [ ] First only
| [ ] Extract matches
| Maximum text buffer size 4096
| [ ] Maximum match (greedy)
| [ ] Allow comments
| [X] '.' matches newline
| [ ] UTF-8 Support
|
|--Add file header [chcp 1251 >nul]|
+--Output to clipboard
[ ] Unicode output