Окончательное решение о рандомном переименовании файлов в Windows

Преамбула

Уже поднимал этот вопрос здесь (копия), в общем, нативного решения не нашел, написал простенькую утилиту Random Renamer.

Краткая справка

Random renamer (rr), this program rename files to random names
v 0.0.1b (L) ChaosSoftware 2023.

Использование: rr.exe [параметры] | -h
-h — помощь
-m <mask> — Маска файлов для переименования. Параметр обязательный.
Или используйте параметр -r для переименования только каталогов.
[-a] <номер> — задать алфавит для генерации случайного имени, значение по умолчанию 0
[-d] — стартовая директория, по умолчанию — текущая
[-l] <число> — длина имени, по умолчанию 8
[-r] — переименовывать директории
[-s] — включая подкаталоги
[-v] — отображать процесс на экране
[-x] <число> — длина расширения, по умолчанию 3, каталогам расширение не присваивается.

Алфавиты:
0: abcdefghijklmnopqrstuvwxyz0123456789
1: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
2: ABCDEF0123456789
3: abcdef0123456789
4: 0123456789
5: abcdefghijklmnopqrstuvwxyz
6: ABCDEFGHIJKLMNOPQRSTUVWXYZ

По умолчанию: 0

Исходник

На GitHub

Бинарник (EXE for Windows)

Скачать

Использование

Положить бинарник в один из каталогов %PATH%, например, в C:\Windows и пользоваться.

Потом сделаю пример, как его со shred‘ом в BAT/CMD использовать.

FreePascal: TStringList надо инициализировать nil’ом

Вот как-то так:

var
...
lstFiles:TStringList=nil; lstDirs:TStringList=nil;

Иначе возможен плавающий глюк, который внезапно может вылезти где угодно при обращении к TStringList. Возьмет и вылезет EAccessViolation, так что про инициализацию забывать не надо. Делал маленькую внутрикорпоративную утилиту, два дня потерял, отлаживая странный глюк, а вот оно как оказалось.

Тайна старинных виндов (пародия на КиШ)

Деревня укрылась от Майкрософт
Туда совершенно случайно попал
Один покупатель старинных виндов,
Он их для Билл Гейтса повсюду искал,

Не мог он не удивиться
Хозяйке старого ноутбукА,
Красивая с виду девица
Откуда в этой глуши она?

А? А? А?

Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
Девица не спускала с них свой очень странный взгляд,
Они давно висят!

Но нет, неподкупна хозяйка была,
Винды отказалась она продавать,
И на ночь оставила гостя она
Свою предложила мужчине кровать.

Но только она заснула,
Тихонько дверь притворив за собой
В гостиную прошмыгнула
Фигура гостя во тьме ночной.

Ой, ой, ой

Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
И гость не отрывал от них свой сисадминский взгляд,
Они давно висят!

Не сразу в винде неисправность нашел,
Лишь только компьютер перезагрузил,
Обратно он в спальню хозяйки пошёл,
Мол, древнюю вещь ото сна пробудил

В ответ она захрипела
Был дикий ужас в её глазах
Винды грузились — она старела,
Пока не превратилась в прах!

Ах, ах, ах!

Висели на дисплее старинные винды,
В них замер system main process сто с лишним лет назад,
Девица не спускала с них свой очень странный взгляд,
Они давно висят!