В Windows добавьте префикс для нескольких файлов PDF

489
Lia

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

2
https://softwarerecs.stackexchange.com - предпочтительное место, чтобы спросить о приложениях, которые вы можете добавить для этого, если вы используете Windows, которая не знает, как это сделать. K7AAY 5 лет назад 0

4 ответа на вопрос

2
JSanchez

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

@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». Затем командный файл переименует файлы.

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

Возможно, вы захотите объяснить немного о пробном запуске, а затем об удалении `ECHO`. (2) Почему бы вам просто не сделать `` `для %% x in (* .pdf) do``` и пропустить tmpfile? Scott 5 лет назад 0
@scott: для # 1 я думал, что комментариев в командном файле будет достаточно. Я обновлю ответ. Для # 2, во время моего тестирования пакет добавлял префикс дважды к первому файлу. Подумал, что безопаснее всего было перенаправить во временный файл, а затем зациклить. JSanchez 5 лет назад 0
1
K7AAY

Команда 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
Scott

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

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

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

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

-1
Keltari

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

ren *.pdf INVOICE_*.pdf