1

У меня есть серия из ~ 10000 папок, и в большинстве из них есть два слова (имя и фамилия), которые нужно поменять местами. Это легкая часть. Часть, в которой я борюсь, состоит в том, чтобы программно идентифицировать имена папок, которые имеют более двух слов, так как расположение фамилии должно рассматриваться по-разному. Какие-либо предложения? Спасибо!

1 ответ1

3

Вы можете сделать это довольно легко с помощью JREN.BAT - утилиты переименования регулярных выражений. JREN.BAT - это чистый скрипт (гибридный пакет /JScript), который работает на любом компьютере под управлением Windows начиная с XP и не требует запуска стороннего exe-файла. Полная документация доступна из командной строки через jren /? или jren /?? для постраничной помощи.

Вы не говорите точно, как вы хотите обработать три имени, поэтому я приведу пару примеров. Для каждого примера я добавляю опцию /T test mode, которая просто перечисляет изменения, которые будут внесены. Удалите параметр /T и переименование действительно произойдет. Эти примеры будут переименовывать только те папки, которые содержат ровно 2 или 3 "слова".

AB ==> BA или ABC ==> CAB

jren "^(\S+)\s*(\s\S+)?\s+(\S+)$" "$3 $1$2" /d /t


AB ==> BA или ABC ==> ACB

jren "^(\S+\s)?\s*(\S+)\s+(\S+)$" "$1$3 $2" /d /t

Если формат трех имен полностью отличается от двух, вы можете либо выполнить две отдельные команды, одну для двух имен и одну для трех, или вы можете добавить параметр /J и поместить предоставленный пользователем JScript в аргумент замены, чтобы получить сколь угодно сложную Результаты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .