Відповіді:
Я знаю, що у вашій назві ви говорите "в досі", але я створюю враження, що ви просто шукаєте спосіб це зробити і цікавитесь, чи це найкращий спосіб.
Абсолютний найкращий інструмент, який я знайшов для цього, це Bulk Rename Utility .
Це не інструмент командного рядка, але вони мають версію командного рядка, якщо ви дійсно хочете використовувати його таким чином.
Я багато використовував версію GUI, і вона дуже потужна, дуже швидка і надзвичайно проста у використанні.
О, і це БЕЗКОШТОВНО для особистого користування.
Невеликий сценарій PowerShell:
$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
У поєднанні зі складнішими регулярними виразами це може стати чимось на зразок:
ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }
Що перетворює такі речі, як '01 - початок.mp3 'у' початок - 01.mp3 '.
Використовуйте -WhatIf
параметр увімкнено, Rename-Item
щоб перевірити перейменування, перш ніж їх видавати.
... -replace '\d+ - ',''
. Крім того, я вважаю, що перший краще, просто зніміть початок за допомогою регексу. Хоча я вважаю, що ви повинні включити ^ якор на початку виразу, щоб він відповідав лише іменам, що починаються з чисел.
-replace
може мати лише один аргумент з правого боку, у цьому випадку другий неявно порожній рядок.
Якщо ви дійсно хочете використовувати командний рядок Windows (якщо ви не хочете щось завантажити), ви можете зробити це так:
dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l
Перший рядок виводить список файлів у файл, який називається fileList.txt. Другий рядок розділяє кожне з імен у списку на 3 частини, #, "-" та решту імен. Для кожного з них виконується команда перейменування.
for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
AntRenamer дозволяє досить легко визначити шаблон перейменування; вже багато підготовлених (і це дає попередній перегляд дій):
Безкоштовно для особистого та комерційного використання.
стара школа:
Ви можете зробити DIR і перенаправити вихід у файл, як у DIR * .TXT> TEMP.BAT
Потім скористайтеся редактором, щоб вийняти те, що вам не потрібно, і змінити потрібні вам частини. Додати верхній рядок "@echo off", зберегти його та запустити.
Ще один варіант: Massive File Renamer
Це дозволяє легко перейменувати кілька файлів і розширень . Це дуже швидко і просто!
Для досвідчених користувачів і розробників можна використовувати регулярні вирази .
Дивіться це в дії:
Я використовую інструмент мультиперейменування Total Commander (ctrl + M) для таких речей. Їх корисний інструмент, один із занадто багатьох для підрахунку, простий у використанні, а також може використовувати необхідні регулярні вирази та шаблони. О, і це очевидно дає попередній перегляд перед внесенням будь-яких змін.
Це третє чи четверте питання, на які я відповів, рекомендуючи Total Commander ... я повинен отримувати від них комісію ;-)
Інструментом, яким я задоволений, є ReNamer . Він також підтримує збереження правил перейменування, що було мені корисно, оскільки я багато разів роблю ті самі перейменування.
Нижче наводиться приклад того, як видалити текст до першого тире, але є безліч інших правил, які ви можете визначити.
Для цього я використовував Free Commander Portable (безкоштовно):
Для досвідчених користувачів і розробників я б запропонував RegexRenamer .
Професійні:
Кон:
Найпростішим способом було б скористатися Перейменувати Master .
Ось рішення в командному рядку --- програма Java, яку я написав спеціально, щоб полегшити роботу з "візерунками" у назви файлів. Це безкоштовно та з відкритим кодом, тому не соромтесь його змінювати:
RenameWand
http://renamewand.sourceforge.net/
Деякі відповідні приклади використання:
Відкиньте все перед "-"
ім'ям файлу:
java -jar RenameWand.jar "<a> - <b>" "<b>"
Додайте 3-значний номер до імені файлу, сортуючи за останнім зміненим часом:
java -jar RenameWand.jar "<a>" "<3|#FT> <a>"
Переставіть частини імені файлу та змініть регістр:
java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>"
"<artist.upper> <album.title> - <song>.<ext.lower>"
Я відкрив RenPhoric близько місяця тому. Прекрасно. І це безкоштовно .
Немає складного інтерфейсу, і я швидко зміг перейменувати саме так, як хотів. Можлива регулярна експресія. З тих пір більше нічого не використовував.
Як і @zdan вище, я робив це за допомогою командного рядка (використовуючи "cmd.exe" у Windows). У моєму конкретному випадку знадобилося трохи повороту, але невелике дослідження вирішило це.
Як і zdan, я виводжу список у файл TXT, потім використовуюсь tokens
і delims
перейменую файли відповідно. У моєму випадку я почав зі списку таких файлів:
name-01-02-2012.csv
Я хотів, щоб частина дати файлу була в порядку у / м / д, з частиною "ім'я" в кінці, щоб вона читалася так:
2012-01-02-name.csv
Для цього я використовував наступний код. Зауважте, що роблячи це таким чином, враховуються ВСІ частини імені файлу, включаючи розширення ".csv". Це мене вперше обрушило.
dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m
Це tokens
"частини" імені файлів, delims
це роздільники. Зауважте, що в моєму випадку у мене було 2 роздільники (тире та крапка).
Мене особисто не цікавить додаток "Масове перейменування". Як вже згадували інші, графічний інтерфейс - жорстокий і не дуже інтуїтивний. За допомогою невеликого дослідження та простого кодування ці речі можна зробити набагато ефективніше та швидше.
Забавне ім’я та інструмент командного рядка дуже потужний, дуже швидкий та надзвичайно простий у використанні. "Знайти та замінити текст" FART http://fart-it.sourceforge.net/ РОБОТИ ВЕЛИКИЙ! Ви також можете перейменовувати слова у файлах txt.
Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]
Options:
-h --help Show this help message (ignores other options)
-q --quiet Suppress output to stdio / stderr
-V --verbose Show more information
-r --recursive Process sub-folders recursively
-c --count Only show filenames, match counts and totals
-i --ignore-case Case insensitive text comparison
-v --invert Print lines NOT containing the find string
-n --line-number Print line number before each line (1-based)
-w --word Match whole word (uses C syntax, like grep)
-f --filename Find (and replace) filename instead of contents
-B --binary Also search (and replace) in binary files (CAUTION)
-C --c-style Allow C-style extended characters (\xFF\0\t\n\r\\ etc.)
--cvs Skip cvs dirs; execute "cvs edit" before changing files
-a --adapt Adapt the case of replace_string to found string
-b --backup Make a backup of each changed file
-p --preview Do not change the files but print the changes
-f
варіант, як перераховано.
Сценарій перейменування - це альтернатива відкритому коду альтернативі інструменту «Total Commanders Multi Rename», який можна було б керувати за допомогою сценарію. Він може використовувати плагіни TC для інформації метаданих.
@echo off setlocal enabledeyedex розширення множина X = 5 встановити FOLDER_PATH =. pushd% FOLDER_PATH% для %% f в (*) робити, якщо %% f neq% ~ nx0 ( встановити "ім'я файлу = %% ~ nf" встановити "ім'я файлу =! ім'я файлу: ~% X%!" ren "%% f" "! ім'я файлу! %% ~ xf" ) попд
збережіть це у пакетному файлі та запустіть
set /p "X=Enter the value for X: "
Я використовую Blackboard для адміністрування курсів в університеті. Коли я завантажую завдання масово (на Blackboard клацніть верхній стовпчик з оцінкою, потім «Завантажте файл завантаження». Blackboard додає купу зайвих речей до імені файлу -often, що робить ім'я файлу занадто довгим, щоб бути дійсним для Windows.
Ось як вони виглядають:
Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx
І це я хотів
studentname.docx
Тому я використав підхід, який радили @zdan та @ gtr1971, відкривши командне вікно в папці з файлами всередині (CMD.EXE). Потім запустіть цю команду, щоб помістити всі імена файлів у документ.
dir /b >filelist.txt
Відредагуйте документ та видаліть назви папок тощо.
Використовуйте цю команду, щоб замінити додані файли з імені файлу Blackboard на просто ім'я користувача та розширення файлу.
for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n
Сподіваюся, що це допомагає і комусь іншому.
Ось ще одна проста програма під назвою File Attribute Changer, яку можна використовувати для перейменування файлів. Це портативна програма, тому ви можете переносити її на USB-накопичувач.
Я розробив гібридну утиліту командного рядка JScript / batch під назвою JREN.BAT, яка може перейменовувати файли чи папки, виконуючи звичайний пошук виразів та замінювати їх назви. Це чистий сценарій, який запускається на будь-якій машині Windows від XP вперед. Повна документація вбудована в сценарій.
Якщо припустити, що JREN.BAT знаходиться у вашому поточному каталозі, а ще краще - десь у вашому шляху, то ваше завдання перейменування стає тривіальним.
jren "^\d+[ -]+(.+)\.txt$" "$1" /i
або
jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"
Існує багато варіантів, включаючи /S
опцію, яка рекурсивно виконує перейменування в підкаталогах.
Якщо вам потрібна серйозна потужність і ви готові викласти гроші ... PowerGrep - це один з найпотужніших і універсальних інструментів на ринку ... ви можете перейменовувати майже все що завгодно в PowerGrep ... навіть двійковий пошук і заміна ... його створив гур RegEx, Ян Гойвартс .