У меня есть серия из ~ 10000 папок, и в большинстве из них есть два слова (имя и фамилия), которые нужно поменять местами. Это легкая часть. Часть, в которой я борюсь, состоит в том, чтобы программно идентифицировать имена папок, которые имеют более двух слов, так как расположение фамилии должно рассматриваться по-разному. Какие-либо предложения? Спасибо!
1 ответ
Вы можете сделать это довольно легко с помощью 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 в аргумент замены, чтобы получить сколь угодно сложную Результаты.