Зміна всіх розширень файлів у папці з однією командою в Windows


145

Як я можу використовувати командний рядок Windows для зміни розширень тисяч файлів на *****.jpg?


що ви маєте на увазі, змінюючи всі розширення як *****. jpg? чи означає це всі розширення файлів до jpg? якщо так, використовуйте ren . * .jpg
Імран Різві

яка операційна система? Як ви хочете їх змінити?
Брайс

@bryce off windows windows операційна система ..
Berker Yüceer

Відповіді:


298

Ви можете використовувати ren(як при перейменуванні ):

ren *.XXX *.YYY

І звичайно, переключіть XXX та YYY на відповідні розширення. Він зміниться з XXX на РРРР. Якщо ви хочете змінити всі розширення, просто знову використовуйте підстановку:

ren *.* *.YYY

Один із способів зробити цю роботу рекурсивно - це FORкоманда. Він може використовуватися з /Rможливістю рекурсивно застосовувати команду до відповідних файлів. Наприклад:

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

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

А оскільки у вас є тисячі файлів, не забудьте почекати, поки курсор знову почне блимати, що вказує на те, що він працює.

Примітка. Це працює лише на cmd. Не працюватимуть на Powershell або Bash


* .XXX змінить файли саме для цього розширення (означає, що він перейменовує всі файли з розширенням XXX)
Хабіб,

@ keyser5053 також я можу отримати звіт про зроблені тут дії ... з використанням ren *.* *.jpg > E:\Log\Cmd\ExtChange\ext.txt?
Berker Yüceer

А як щодо рекурсивної заміни у всіх підручниках?
NightElfik

@NightElfik Я додав рекурсивний приклад, який використовуєFOR
keyser

4
Я не міг змусити це працювати в powerhell, але він добре працював у cmd.exe. Просто для того, щоб інші знали.
hazzey

20

на CMD

тип

ren *.* *.jpg

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


10

Перейменувати поведінку іноді "менше, ніж інтуїтивно зрозуміло"; наприклад...

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

ПРИМІТКА: не для Windows

Використовуючи ren-1.0 правильну форму:

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

З man ren

Шаблон заміни - це інше ім'я файлу з вбудованими індексами підстановки, кожен з яких складається з символу #, після якого цифра від 1 до 9. У новому імені відповідного файла індекси підстановки замінюються фактичними символами, які відповідають посиланням символи підстановки в оригінальному імені файлу.

і

Зауважте, що оболонка зазвичай розширює підстановку * і?, Що у випадку ren небажано. Таким чином, у більшості випадків необхідно вкласти лапки пошуку в лапки.


Мені довелося скористатися №1: ren "* .csv" "# 1.json"
elmalto

1
man ren? Питання стосувалося Windows / cmd. Вони зараз надають manсторінки? Що таке ren-1.0і як ми можемо переглянути його manсторінку в контексті?
підкреслюй_d


3

Цей код працює лише для людей, які хочуть зробити це в пакетних файлах:

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

У цьому прикладі всі файли з розширеннями .jpg у каталозі C: ​​\ Users \ jonathan \ Desktop \ test змінені на * .png.


2

Перейменуйте кілька розширень файлів:

Ви хочете змінити ringtone1.mp3, ringtone2.mp3щоб ringtone1.wav,ringtone2.wav

Ось як це зробити: я перебуваю в d-диску в командному рядку (CMD), тому я використовую:

d:\>ren *.* *.wav 

Це лише приклад розширення файлів, ви можете використовувати будь-який тип розширення файлів, наприклад WAV, MP3, JPG, GIF, bmp, PDF, DOC, DOCX, TXT, це залежить від вашої операційної системи.

А оскільки у вас є тисячі файлів, не забудьте почекати, поки курсор знову почне блимати, що вказує на те, що він працює.


1

У моєму випадку у мене був каталог із закінченням 800+ файлів .StoredProcedure.sql(вони були написані на SSMS ).

Розміщені вище рішення не спрацювали. Але я придумав таке:

(На основі відповідей на пакетне програмування - отримайте відносний шлях файлу )

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

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


2
замінити дві setкоманди з цієї єдиної один: set "B=%%~nxf". ( %%~nxfє n ame і e x напруження %%f). %cd%може бути недійсним, якщо робити це рекурсивно.
Стефан

1

Я знаю, що це так давно, але я приземлився на ньому, і надані відповіді не працювали для мене на powerhell, тому після пошуку знайшли це рішення

робити це в повному обсязі

Get-ChildItem -Path C:\Demo -Filter *.txt | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".old")}

кредит переходить до http://powershell-guru.com/powershell-tip-108-bulk-rename-extensions-of-files/


0

Альтернативний спосіб перейменування файлів за допомогою перейменування npm-пакету.

нижче - приклад перейменування розширень файлів

renamer -d --path-element ext --find ts --replace js *

0

Що для мене спрацювало, це це (спочатку CD у папці):

Get-ChildItem -Filter *.old | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".new")}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.