it-swarm.asia

Bagaimana saya bisa mengubah nama file secara massal?

Saya punya banyak file dengan pola 99 - DescriptiveName.txt dan saya ingin menghapus nomor dari depan jadi saya hanya punya DescriptiveName.txt.

Bagaimana saya bisa melakukan ini? Bisakah saya melakukannya dari baris perintah atau apakah ada utilitas yang dapat melakukan ini?

124
BIBD

Saya tahu dalam judul Anda Anda mengatakan "dalam dos" tetapi saya mendapat kesan Anda hanya mencari cara untuk melakukan ini dan bertanya-tanya apakah itu cara terbaik.

Alat terbaik mutlak yang saya temukan untuk ini adalah Bulk Rename Utility .

Bulk Rename Utility

Ini bukan alat baris perintah, tetapi mereka memiliki versi baris perintah jika Anda benar-benar ingin menggunakannya dengan cara itu.

Saya sudah sering menggunakan versi GUI, dan sangat kuat, sangat cepat dan sangat mudah digunakan.

Oh, dan itu GRATIS untuk penggunaan pribadi.

93
Jim McKeeth

Skrip PowerShell kecil:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

Dikombinasikan dengan ekspresi reguler yang lebih kompleks, ini mungkin menjadi sesuatu seperti:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

Yang mengubah hal-hal seperti '01 - Beginning.mp3 'menjadi' Beginning - 01.mp3 '.

Gunakan parameter -WhatIf pada Rename-Item untuk memeriksa nama sebelum Anda mengeluarkannya.

56
Joey

AntRenamer membuatnya cukup mudah untuk mendefinisikan pola penggantian nama; ada banyak yang sudah disiapkan (dan memberikan preview tindakan):

AntRenamer

Gratis untuk penggunaan pribadi dan komersial.

24
Gnoupi

Jika Anda benar-benar ingin menggunakan baris perintah windows (jika Anda tidak ingin mengunduh sesuatu), Anda dapat melakukannya seperti ini:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

Baris pertama menampilkan daftar file ke file bernama fileList.txt. Baris kedua memisahkan masing-masing nama dalam daftar menjadi 3 bagian, #, "-" dan sisa nama. Untuk masing-masing dari mereka melakukan perintah ganti nama.

24
zdan

sekolah tua:

Anda dapat melakukan DIR dan mengarahkan output ke file, seperti pada DIR * .TXT> TEMP.BAT

Kemudian gunakan editor untuk mengambil apa yang tidak Anda butuhkan dan memodifikasi bagian yang Anda butuhkan. Tambahkan "@echo off" sebagai baris teratas, simpan dan jalankan.

19
WireGuy

Pilihan lain: Pengubah Ukuran File Masif

Ini memungkinkan untuk dengan mudah mengganti nama beberapa file dan ekstensi file . Ini sangat cepat dan sederhana!

Untuk pengguna dan pengembang tingkat lanjut, dimungkinkan untuk menggunakan ekspresi reguler .

Lihat dalam aksi:

enter image description here

16
IvanRF

Saya menggunakan alat multi-rename Total Commander (ctrl + M) untuk hal-hal seperti ini. Alat bermanfaat mereka, salah satu dari terlalu banyak untuk dihitung, mudah digunakan, dan juga dapat menggunakan ekspresi dan templat reguler jika perlu. Oh, dan itu jelas memberi Anda pratinjau sebelum melakukan perubahan.

Ini adalah pertanyaan ketiga atau keempat yang saya jawab merekomendasikan Total Commander ... Saya harus mendapat komisi dari mereka ;-)

13
Yuval

Alat yang saya sudah puas dengan adalah ReNamer . Ini juga mendukung penghematan aturan penggantian nama, yang bermanfaat bagi saya, karena saya berkali-kali melakukan penggantian nama yang sama.

Di bawah ini adalah contoh cara menghapus teks sebelum tanda hubung pertama, tetapi ada banyak aturan lain yang dapat Anda tetapkan.

enter image description here

11
Esko Luontola

Saya telah menggunakan Free Commander Portable (freeware) untuk efek ini:

  1. Pilih atau Navigasikan ke file atau direktori untuk diubah namanya
  2. Tekan [Ctrl-M] (atau File> Multi-rename)
  3. isi bidang yang masuk akal untuk keadaan Anda
  4. verifikasi pratinjau menunjukkan apa yang Anda harapkan
  5. Pergi!
5
matt wilkie

Untuk pengguna dan pengembang tingkat lanjut, saya sarankan RegexRenamer .

RegexRenamer screenshot

Pro:

  • UI yang sangat sederhana;
  • Ekspresi reguler yang akrab dengan pengembang;
  • GPLv2;

Con's:

  • Itu bukan baris perintah! :)
4
bytebuster

Saya menemukan RenPhoric sekitar sebulan yang lalu. Hebat. Dan itu gratis .

Tidak ada antarmuka yang rumit dan saya dengan cepat dapat mengubah nama persis seperti yang saya inginkan. Ekspresi Reguler mampu. Belum menggunakan hal lain sejak itu.

3
Umber Ferrule

Cara termudah adalah dengan menggunakan Ganti nama Master .

3
Kevin Panko

Berikut ini adalah solusi baris perintah --- program Java yang saya tulis secara khusus untuk memudahkan bekerja dengan "pola" dalam nama file. Ini gratis dan open source, jadi jangan ragu untuk memodifikasinya:

RenameWand
http://renamewand.sourceforge.net/

Beberapa contoh penggunaan yang relevan:

Letakkan semuanya sebelum "-" di namafile:

Java -jar RenameWand.jar  "<a> - <b>"  "<b>"

Tambahkan nomor 3 digit ke nama file, urutkan berdasarkan waktu yang terakhir diubah:

Java -jar RenameWand.jar  "<a>"  "<3|#FT> <a>"

Atur ulang bagian nama file, dan ubah huruf besar-kecil:

Java -jar RenameWand.jar  "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
Zach Scrivena

Seperti @zdan di atas, saya melakukan ini dengan command line (menggunakan "cmd.exe" di Windows). Butuh waktu untuk mengutak-atik kasus khusus saya, tetapi sedikit penelitian menyelesaikannya.

Seperti zdan, saya menampilkan daftar ke file TXT, kemudian menggunakan tokens dan delims untuk mengubah nama file sesuai dengan itu. Dalam kasus saya, saya mulai dengan daftar file bernama seperti ini:

name-01-02-2012.csv

Saya ingin bagian tanggal file berada dalam urutan y/m/d, dengan bagian "nama" di bagian akhir sehingga akan terbaca seperti ini:

2012-01-02-name.csv

Untuk melakukan ini secara massal, saya menggunakan kode berikut. Perhatikan bahwa ketika melakukannya dengan cara ini, SEMUA bagian dari nama file dipertimbangkan, termasuk ekstensi ".csv". Itu membuat saya kesalahan pertama kali di sekitar.

dir /B > fileList.txt
for /f "tokens=1,2,3,4,5 delims=-." %i in (fileList.txt) DO ren "%i-%j-%k-%l.%m" %l-%j-%k-%i.%m

tokens adalah "bagian" dari nama file, delims adalah pemisah. Perhatikan bahwa dalam kasus saya, saya memiliki 2 pembatas (tanda hubung dan tanda titik).

Saya pribadi tidak peduli dengan aplikasi "Ganti Nama Massal". Seperti yang disebutkan orang lain, GUI mengerikan dan tidak terlalu intuitif. Dengan sedikit riset dan pengkodean sederhana, hal-hal ini dapat dilakukan jauh lebih efisien dan cepat.

2
gtr1971

Nama lucu dan alat baris perintah sangat kuat, sangat cepat dan sangat mudah digunakan. "Temukan Dan Ganti Teks" FART http://fart-it.sourceforge.net/ BEKERJA HEBAT! dapat mengubah nama kata dalam file txt juga.

PEMAKAIAN

Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]

Options:
 -h --help          Show this help message (ignores other options)
 -q --quiet         Suppress output to stdio / stderr
 -V --verbose       Show more information
 -r --recursive     Process sub-folders recursively
 -c --count         Only show filenames, match counts and totals
 -i --ignore-case   Case insensitive text comparison
 -v --invert        Print lines NOT containing the find string
 -n --line-number   Print line number before each line (1-based)
 -w --Word          Match whole Word (uses C syntax, like grep)
 -f --filename      Find (and replace) filename instead of contents
 -B --binary        Also search (and replace) in binary files (CAUTION)
 -C --c-style       Allow C-style extended characters (\xFF\0\t\n\r\\ etc.)
    --cvs           Skip cvs dirs; execute "cvs edit" before changing files
 -a --adapt         Adapt the case of replace_string to found string
 -b --backup        Make a backup of each changed file
 -p --preview       Do not change the files but print the changes
2
user212780

Skrip multi rename adalah alternatif sumber terbuka untuk alat Total Commanders Multi Rename yang dapat Anda kendarai melalui skrip. Itu dapat menggunakan plugin TC untuk informasi metadata.

https://code.google.com/p/multi-rename-script/ http://multi-rename-script.googlecode.com/svn/trunk/docs/res/MRS.PNG

2
majkinetor
 @ echo off 
 setlocal enabledelayedexpansion 
 atur X = 5 
 atur FOLDER_PATH =. 
 pushd% FOLDER_PATH% 
 untuk %% f in (*) lakukan jika %% f neq% ~ nx0 (
 set "nama file = %% ~ nf" 
 atur "nama file =! nama file: ~% X%!" 
 ren "%% f" "! nama file! %% ~ xf" 
) 
 popd 
 

simpan ini dalam file batch dan jalankan

2
bbm123

Saya suka Cylog WildRename . Ini kuat, namun mudah digunakan, dan memiliki banyak fitur:

  1. cepat
  2. manipulasi string
  3. counter
  4. wildcard
  5. ekspresi reguler
  6. pengganti
  7. konversi kasus
  8. logging
  9. simulasi (tampilkan hasilnya tanpa benar-benar menerapkannya)

enter image description here

2
Synetech

Saya menggunakan Papan Tulis untuk menyelenggarakan kursus di suatu Universitas. Ketika saya mengunduh tugas secara massal (di Blackboard, klik bagian atas kolom penilaian, lalu "assign file file" Blackboard menambahkan banyak hal tambahan ke nama file -sering membuat nama file terlalu lama untuk valid pada Windows.

Seperti apa bentuknya:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

Dan inilah yang saya inginkan

studentname.docx

Jadi saya menggunakan pendekatan yang disarankan oleh @zdan dan @ gtr1971, dengan membuka jendela perintah pada folder dengan file di dalamnya (CMD.EXE). Kemudian jalankan perintah ini untuk memasukkan semua nama file dalam dokumen.

dir /b >filelist.txt

Edit dokumen dan hapus nama folder, dll.

Gunakan perintah ini untuk mengganti Blackboard menambahkan nama file hanya dengan nama pengguna dan ekstensi file.

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

Semoga ini bisa membantu orang lain juga.

1
Webmentorman

Saya telah mengembangkan utilitas baris perintah hybrid JScript/batch bernama JREN.BAT yang dapat mengubah nama file atau folder dengan melakukan pencarian ekspresi reguler dan mengganti nama-nama . Ini adalah skrip murni yang akan berjalan secara native di mesin Windows mana pun dari XP maju. Dokumentasi lengkap tertanam dalam skrip.

Dengan asumsi JREN.BAT ada di direktori Anda saat ini, atau lebih baik lagi, di suatu tempat dalam jalur Anda, maka tugas mengubah nama Anda menjadi sepele.

jren "^\d+[ -]+(.+)\.txt$" "$1" /i

atau

jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"

Ada banyak opsi, termasuk opsi /S yang secara rekursif melakukan penggantian nama pada sub-direktori.

1
dbenham

Berikut ini adalah program sederhana lain bernama File Attribute Changer yang dapat Anda gunakan untuk mengganti nama file. Ini adalah program portabel, sehingga Anda dapat membawanya di USB drive.

http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

1
Brian

Jika Anda membutuhkan kekuatan serius dan bersedia untuk mengeluarkan uang ... PowerGrep adalah salah satu alat paling kuat dan serbaguna di pasar ... Anda dapat mengganti nama hampir semua hal dengan PowerGrep ... bahkan pencarian biner dan ganti ... itu dibuat oleh RegEx Guru, Jan Goyvaerts .

enter image description here

0
Eddie B