2

У меня есть папка со 100 счетами, и все они должны иметь при себе префикс "INVOICE_". Я пытался запустить команду, но она не работает.
Я пробовал ren * INVOICE_*.PDF но это не работает. Может кто-нибудь помочь мне понять это?

4 ответа4

2

Быстрый и грязный пакетный файл, который будет делать то, что вы хотите.

@echo off
::Create a temporary filename.
set _tmpfile=%random%

::Store the prefix you want to use in the rename in a variable
set _prefix=INVOICE_

::List of files to be renamed are held in the _tmpfile
::so be sure that you are in the correct folder/directory.
dir *.pdf /b>%_tmpfile%

::Now, loop through the _tmpfile and rename each file using the _prefix variable
:: Remove the ECHO below in order for this to work.
for /f %%x in (%_tmpfile%) do ECHO ren %%x %_prefix%%%x

::Delete the _tmpfile
if exist %_tmpfile% del %_tmpfile%

Обновление: пакетный файл, как есть, не будет переименовывать файлы. Она просто покажет вам команду, которую она запустит, если вы удалите строку "ECHO" из строки «for /f in %% x». Затем командный файл переименует файлы.

Надеюсь это поможет!

1

Команда ren работает не так, как вы ожидаете; нажмите на ссылку, чтобы узнать больше об этом. Сторонняя утилита переименования файлов сделает это намного проще. Существует ряд бесплатных программ с открытым исходным кодом, таких как
https://sourceforge.net/projects/renameit/
http://file-folder-ren.sourceforge.net/
https://sourceforge.net/projects/mfrv02/
https://sourceforge.net/projects/multifilerename/
https://sourceforge.net/projects/freefilerenamer/
https://sourceforge.net/projects/personalrenamer/
http://regexrenamer.sourceforge.net/
http://rename.sourceforge.net/
среди других.

Не могу дать рекомендации по конкретному приложению здесь, но https://softwarerecs.stackexchange.com является предпочтительным местом, чтобы спросить о приложениях.

1

В заголовке вашего вопроса написано «в Windows», поэтому я собираюсь проигнорировать тег и дать вам решение PowerShell.  Перейдите в PowerShell (введите powershell в cmd строке или запустите его из меню) и введите

dir *.pdf | rename-item -newname {$_.name -replace "^","INVOICE_"}

Кажется довольно понятным: возьмите имя каждого файла PDF и переименуйте его в новое имя, которое формируется путем замены начала старого имени (обозначаемого регулярным выражением ^) на « INVOICE_ ».

Скопировано почти дословно из Как Пакетное переименование нескольких файлов в Windows на How-To Geek.

-1

Попробуйте эту команду

ren *.pdf INVOICE_*.pdf

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