Jawaban:
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 Utilitas Ubah Nama Massal .
Itu 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, benar BEBAS untuk penggunaan pribadi.
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 '.
Menggunakan -WhatIf
parameter aktif Rename-Item
untuk memeriksa nama sebelum Anda mengeluarkannya.
... -replace '\d+ - ',''
. Juga, saya percaya yang pertama lebih baik, cukup menanggalkan awal menggunakan regex. Meskipun saya percaya Anda harus menyertakan jangkar ^ di awal ekspresi sehingga hanya cocok dengan nama yang dimulai dengan angka.
-replace
dapat memiliki hanya satu argumen di sisi kanan, dalam hal yang kedua secara implisit adalah string kosong.
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.
for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
Ant Renamer membuatnya cukup mudah untuk menentukan pola penggantian nama; ada banyak yang sudah disiapkan (dan memberikan preview tindakan):
Gratis untuk penggunaan pribadi dan komersial.
sekolah tua:
Anda dapat melakukan DIR dan mengarahkan output ke file, seperti pada DIR * .TXT & gt; 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.
Pilihan lain: Pembuat File Massive
Ini memungkinkan untuk dengan mudah ganti nama berganda file dan ekstensi file . Ini sangat cepat dan sederhana!
Untuk pengguna dan pengembang tingkat lanjut, dimungkinkan untuk digunakan ekspresi reguler .
Lihat dalam aksi:
saya menggunakan Komandan Total Alat multi-ganti nama (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 ;-)
Alat yang saya puasi 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.
Saya sudah menggunakan Komandan Gratis Portable (freeware) agar ini berfungsi:
Untuk pengguna dan pengembang tingkat lanjut, saya sarankan RegexRenamer .
Pro:
Con's:
Cara termudah adalah menggunakan Ganti nama Master .
Ini a garis komando solusi --- program Java yang saya tulis khusus untuk membuatnya mudah untuk 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:
Jatuhkan semuanya sebelum "-"
dalam nama file:
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>"
saya menemukan RenPhoric sekitar sebulan yang lalu. Hebat. Dan itu bebas .
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.
Saya suka Cylog WildRename . Ini kuat, namun mudah digunakan, dan memiliki banyak fitur:
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, lalu digunakan tokens
dan delims
untuk mengubah nama file sesuai. 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
Itu 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.
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.
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
-f
opsi, seperti yang tercantum.
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.
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER_PATH=. pushd %FOLDER_PATH% for %%f in (*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd
simpan ini dalam file batch dan jalankan
set /p "X=Enter the value for X: "
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.
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.
Saya telah mengembangkan utilitas JScript / batch command line hybrid yang disebut JREN.BAT yang dapat mengganti nama file atau folder dengan melakukan pencarian ekspresi reguler dan mengganti namanya. Ini adalah skrip murni yang akan berjalan secara asli pada mesin Windows apa pun dari XP ke depan. 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 /S
opsi yang secara rekursif melakukan penggantian nama pada sub-direktori.
Jika Anda membutuhkan kekuatan serius dan bersedia mengeluarkan uang ... PowerGrep adalah salah satu alat paling kuat dan serbaguna di pasar ... Anda dapat mengubah nama hampir semua hal dengan PowerGrep ... bahkan pencarian biner dan ganti ... itu diciptakan oleh RegEx Guru, Jan Goyvaerts .