У меня есть папка со 100 счетами, и все они должны иметь при себе префикс "INVOICE_". Я пытался запустить команду, но она не работает.
Я пробовал ren * INVOICE_*.PDF
но это не работает. Может кто-нибудь помочь мне понять это?
4 ответа
Быстрый и грязный пакетный файл, который будет делать то, что вы хотите.
@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». Затем командный файл переименует файлы.
Надеюсь это поможет!
Команда 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 является предпочтительным местом, чтобы спросить о приложениях.
В заголовке вашего вопроса написано «в Windows», поэтому я собираюсь проигнорировать тег cmd.exe и дать вам решение PowerShell.
Перейдите в PowerShell (введите powershell
в cmd
строке или запустите его из меню) и введите
dir *.pdf | rename-item -newname {$_.name -replace "^","INVOICE_"}
Кажется довольно понятным: возьмите имя каждого файла PDF и переименуйте его в новое имя, которое формируется путем замены начала старого имени (обозначаемого регулярным выражением ^
) на « INVOICE_
».
Скопировано почти дословно из Как Пакетное переименование нескольких файлов в Windows на How-To Geek.
Попробуйте эту команду
ren *.pdf INVOICE_*.pdf