Изменение расширений всех файлов в папке с помощью одной команды в Windows - PullRequest
134 голосов
/ 27 марта 2012

Как использовать командную строку Windows, чтобы изменить расширения тысяч файлов на *****.jpg?

Ответы [ 8 ]

273 голосов
/ 27 марта 2012

Вы можете использовать ren (как в переименовать ):

ren *.XXX *.YYY

И, конечно, переключать XXX и YYY для соответствующих расширений.Он изменится с XXX на YYY.Если вы хотите изменить все расширения, просто используйте подстановочный знак снова:

ren *.* *.YYY

Один из способов сделать это рекурсивно - с помощью команды FOR.Его можно использовать с опцией /R для рекурсивного применения команды к соответствующим файлам.Например:

for /R %x in (*.txt) do ren "%x" *.renamed

изменит все .txt расширения на .renamed рекурсивно, начиная с текущего каталога.%x - это переменная, которая содержит совпадающие имена файлов.

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

Примечание: это работает только на cmd.Не работает на Powershell или Bash

17 голосов
/ 27 марта 2012

на CMD

тип

ren *.* *.jpg

. выберет все файлы и переименует в * (какое бы имя они ни называли) плюс расширение в jpg

9 голосов
/ 11 августа 2013

Переименовать поведение иногда «менее интуитивно»;например ...

ren * .THM * .jpg переименует ваши файлы THM с расширением .jpg.Например: GEDC003.THM будет GEDC003.jpg

ren * .THM * b.jpg переименует ваши файлы THM в * .THMb.jpg.Например: GEDC004.THM станет GEDC004.THMb.jpg

ren * .THM * .b.jpg переименует ваши файлы THM в * .b.jpg Например: GEDC005.THM станет GEDC005.b.jpg

7 голосов
/ 03 марта 2015

ПРИМЕЧАНИЕ: не для Windows

При использовании ren-1.0 правильная форма:

"ren *.*" "#2.jpg"

С man ren

Шаблон замены является другимимя файла со встроенными подстановочными индексами, каждый из которых состоит из символа #, за которым следует цифра от 1 до 9. В новом имени соответствующего файла подстановочные индексы заменяются фактическими символами, которые соответствуют ссылочным подстановочным знакам в исходном имени файла.

и

Обратите внимание, что оболочка обычно расширяет символы подстановки * и?, Что в случае ren нежелательно.Таким образом, в большинстве случаев необходимо заключить шаблон поиска в кавычки.

6 голосов
/ 27 марта 2012

это просто

ren *.* *.jpg

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

2 голосов
/ 13 июня 2018

Просто для тех, кто хочет сделать это в пакетных файлах, этот код работает:

FOR /R "C:\Users\jonathan\Desktop\test" %%f IN (*.jpg) DO REN "%%f" *.png

В этом примере все файлы с расширениями .jpg в каталоге C: \ Users \ jonathan \ Desktop \ test изменены на * .png.

2 голосов
/ 06 ноября 2013

Переименование нескольких расширений файлов:

Вы хотите изменить ringtone1.mp3, ringtone2.mp3 на ringtone1.wav, ringtone2.wav

Вот как это сделать: Я ввведите в командной строке (CMD), поэтому я использую:

d:\>ren *.* *.wav 

Это просто пример расширения файла, вы можете использовать любой тип расширения файла, например WAV, MP3, JPG, GIF, BMP, PDF,DOC, DOCX, TXT это зависит от того, какая у вас операционная система.

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

1 голос
/ 16 апреля 2019

В моем случае у меня был каталог с 800+ файлами, оканчивающимися на .StoredProcedure.sql (они были написаны с помощью SSMS ).

Вышеуказанные решения не работали.Но я придумал это:

(на основе ответов на пакетное программирование - получить относительный путь к файлу )

@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
  set B=%%f
  set B=!B:%CD%\=!
  ren "!B!" "!B:.StoredProcedure=!"
)

Вышескрипт удаляет подстроку .StoredProcedure из имени файла.Я уверен, что он может быть адаптирован, чтобы охватить больше случаев, запрашивать информацию и быть в целом более общим.

...