Mengubah semua ekstensi file dalam folder dengan satu perintah pada Windows


145

Bagaimana saya bisa menggunakan baris perintah Windows untuk mengubah ekstensi ribuan file *****.jpg?


apa yang Anda maksud dengan mengubah semua ekstensi sebagai *****. jpg? apakah ini berarti semua ekstensi file ke jpg? jika ya gunakan ren . * .jpg
Imran Rizvi

sistem operasi apa? Bagaimana Anda ingin mengubahnya?
bryce

@Bryce tentunya sistem operasi windows ..
Berker Yüceer

Jawaban:


299

Anda dapat menggunakan ren(seperti dalam mengganti nama ):

ren *.XXX *.YYY

Dan tentu saja, ganti XXX dan YYY untuk ekstensi yang sesuai. Itu akan berubah dari XXX ke YYY. Jika Anda ingin mengubah semua ekstensi, cukup gunakan wildcard lagi:

ren *.* *.YYY

Salah satu cara untuk membuat pekerjaan ini secara rekursif adalah dengan FORperintah. Ini dapat digunakan dengan /Ropsi untuk secara rekursif menerapkan perintah ke file yang cocok. Sebagai contoh:

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

akan mengubah semua .txtekstensi .renamedsecara rekursif, mulai dari direktori saat ini. %xadalah variabel yang menyimpan nama file yang cocok.

Dan, karena Anda memiliki ribuan file, pastikan untuk menunggu hingga kursor mulai berkedip lagi yang menunjukkan bahwa itu sudah berfungsi.

Catatan: ini hanya berfungsi pada cmd. Tidak akan bekerja pada Powershell atau Bash


* .XXX akan mengubah file untuk ekstensi tertentu (artinya akan mengubah nama semua file dengan ekstensi XXX)
Habib

@ keyser5053 juga bisakah saya mendapatkan laporan tentang tindakan yang dilakukan di sini .. dengan menggunakan ren *.* *.jpg > E:\Log\Cmd\ExtChange\ext.txt?
Berker Yüceer

Dan bagaimana dengan penggantian rekursif di semua sub-dirs?
NightElfik

@NightElfik Saya menambahkan contoh rekursif yang menggunakanFOR
keyser

4
Saya tidak bisa mendapatkan ini berfungsi di PowerShell, tapi itu bekerja dengan baik di cmd.exe. Supaya orang lain sadar.
hazzey

20

pada CMD

Tipe

ren *.* *.jpg

. akan memilih semua file, dan mengganti nama menjadi * (nama apa pun yang mereka miliki) ditambah ekstensi ke jpg


10

Ganti nama perilaku terkadang 'kurang intuitif'; sebagai contoh...

ren * .THM * .jpg akan mengubah nama file THM Anda menjadi ekstensi .jpg. misalnya: GEDC003.THM akan menjadi GEDC003.jpg

ren * .THM * b.jpg akan mengubah nama file THM Anda menjadi * .THMb.jpg. misalnya: GEDC004.THM akan menjadi GEDC004.THMb.jpg

ren * .THM * .b.jpg akan mengubah nama file THM Anda menjadi * .b.jpg misalnya: GEDC005.THM akan menjadi GEDC005.b.jpg


penjelasan yang bagus
Arslan Ahmad

7

CATATAN: bukan untuk Windows

Menggunakan ren-1.0 formulir yang benar adalah:

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

Dari man ren

Pola penggantian adalah nama file lain dengan indeks wildcard tertanam, yang masing-masing terdiri dari karakter # diikuti oleh digit dari 1 hingga 9. Dalam nama baru file yang cocok, indeks wildcard digantikan oleh karakter aktual yang cocok dengan referensi yang direferensikan. wildcard dalam nama file asli.

dan

Perhatikan bahwa shell biasanya memperluas wildcard * dan?, Yang dalam kasus ren tidak diinginkan. Dengan demikian, dalam banyak kasus perlu menyertakan pola pencarian dalam tanda kutip.


Saya harus menggunakan # 1: ren "* .csv" "# 1.json"
elmalto

1
man ren? Pertanyaannya adalah tentang Windows / cmd. Apakah itu sekarang menyediakan manhalaman? Apa itu ren-1.0dan bagaimana kita dapat melihat manhalamannya dalam konteks?
underscore_d


3

Hanya untuk orang yang ingin melakukan ini dalam file batch, kode ini berfungsi:

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

Dalam contoh ini semua file dengan ekstensi .jpg di direktori tes C: \ Users \ jonathan \ Desktop \ diubah menjadi * .png.


2

Ganti nama beberapa ekstensi file:

Anda ingin mengubah ringtone1.mp3, ringtone2.mp3menjadi ringtone1.wav,ringtone2.wav

Inilah cara melakukannya: Saya berada di drive d pada command prompt (CMD) jadi saya gunakan:

d:\>ren *.* *.wav 

Ini hanya contoh ekstensi file, Anda dapat menggunakan semua jenis ekstensi file seperti WAV, MP3, JPG, GIF, bmp, PDF, DOC, DOCX, TXT ini tergantung pada sistem operasi Anda.

Dan, karena Anda memiliki ribuan file, pastikan untuk menunggu hingga kursor mulai berkedip lagi yang menunjukkan bahwa itu sudah berfungsi.


1

Dalam kasus saya, saya memiliki direktori dengan 800+ file yang diakhiri .StoredProcedure.sql(ditulis dengan SSMS ).

Solusi yang diposting di atas tidak berfungsi. Tapi saya datang dengan ini:

(Berdasarkan jawaban untuk pemrograman batch - dapatkan jalur relatif file )

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

Script di atas menghilangkan substring .StoredProceduredari nama file. Saya yakin ini dapat diadaptasi untuk mencakup lebih banyak kasus, meminta masukan dan secara keseluruhan lebih umum.


2
mengganti dua Anda setperintah dengan satu tunggal ini: set "B=%%~nxf". ( %%~nxfAdalah n ame dan e x ketegangan %%f). %cd%mungkin tidak valid, ketika Anda melakukannya secara rekursif.
Stephan


0

Cara alternatif untuk mengganti nama file menggunakan paket renamer npm.

di bawah ini adalah contoh mengubah nama ekstensi file

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

0

Apa yang berhasil untuk saya adalah yang ini (cd ke folder dulu):

Get-ChildItem -Filter *.old | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".new")}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.