Saya perlu cara untuk mengubah nama semua file dalam folder dan subfolder menjadi huruf kecil.
Saya ingin tahu apakah ada cara untuk melakukannya dengan hanya menggunakan windows (XP atau 7)
windows
file-management
rename
batch-rename
saya tidak
sumber
sumber
Jawaban:
Pergi ke direktori dan jalankan perintah berikut:
Berikut ini rincian jika seseorang ingin memodifikasi / meningkatkan:
for /f
- Untuk setiap baris"Tokens=*"
- Memproses setiap item di setiap baris.%f in (...)
-%f
adalah nama variabel Anda untuk setiap item.dir
- daftar setiap file dan subdirektori dalam direktori./l
- (parameter untuk dir) Menggunakan huruf kecil./b
- (parameter untuk dir) Menggunakan format telanjang, hanya nama file / direktori, tanpa ukuran, tanpa header./a-d
- (parameter untuk dir) Jangan tidak daftar direktori . (a
singkatanattribute
,-
singkatannot
dand
singkatandirectory
) .rename "%f" "%f"
- ganti nama file dengan namanya sendiri, yang sebenarnya ditulis dengan huruf kecil dengandir
perintah dan/l
kombinasi.sumber
for /f "Tokens=*" %f in ('dir /l/b/a-d/s') do (rename "%f" "%f")
(ditambahkan / r ke dir).spacetornado Renamer adalah program Windows yang mengubah nama sejumlah besar file dalam batch. Anda dapat mencari dan mengganti teks, menghapus sejumlah karakter tertentu, mengubah huruf besar-kecil, huruf besar atau Pertama, dan menambahkan teks ke awal atau akhir (tambahkan / tambahkan) dari setiap nama file
sumber
Sejak Windows 7 Anda dapat menggunakan PowerShell untuk tugas-tugas itu
- Pilih folder root Anda
- semua file di dalam folder root dan subfolder diganti namanya
- nama folder dikecualikan dengan
Where {-Not $_.PSIsContainer} |
sumber
Berikut ini adalah solusi baris perintah rekursif yang tepat menggunakan hanya perintah cmd.exe asli yang benar-benar berfungsi. Saya percaya ini adalah solusi asli yang paling sederhana:
Jika Anda mau melampaui perintah cmd.exe asli, maka opsi lain adalah utilitas penggantian nama reguler JREN.BAT saya yang mendukung opsi untuk mengonversi nama menjadi huruf besar atau kecil. Ini adalah skrip murni (hybrid JScript / batch) yang berjalan secara native pada mesin Windows dari XP dan seterusnya - tidak diperlukan file exe pihak ketiga. Dokumentasi lengkap dibangun - diakses dari baris perintah melalui
jren /?
, ataujren /??
jika Anda ingin keluaran halaman.Dengan JREN, solusi rekursif semudah:
sumber
/a-d
sakelar dan juga akan merender nama folder juga." D"') was unexpected at this time.
Menjalankannya sebagai perintah langsung berfungsi dengan baik, tidak berfungsi ketika dijalankan sebagai file batch. Tidak yakin bagaimana cara membuatnya berfungsi sebagai file batch, tetapi saya pikir saya akan membahas masalah ini.%D
harus berubah untuk%%D
, dan%F
untuk%%F
jika Anda menempatkan perintah dalam batch script.Utilitas penggantian nama file batch favorit pribadi saya adalah WildRename Cylog . Di antara banyak fitur lainnya, itu dapat mengubah kasus nama file. Hal terbaik tentang WildRename mungkin mendukung ekspresi reguler!
sumber
Versi "Rekursif" dari jawaban yang diterima (yang berfungsi *)
for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"') do (for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g"))
Loop pertama
for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"')
Mendapat daftar jalur absolut dari semua direktori di dalam saat ini (termasuk itu):
C: \ Foo>
C: \ Foo \ TO.txt
C: \ Foo \ Bar \ LOWER.txt
C: \ Foo \ Bar \ Baz \ CASE.txt
Loop kedua
for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g")
Mendapat daftar semua nama file (atau nama file dan direktori jika Anda mengeluarkan
/a-d
sakelar) di dalam setiap jalur absolut yang ditemukan oleh loop pertama , dan mengonversi nama file-file ini menjadi huruf kecil.C: \ Foo \ TO.txt
C: \ Foo \ Bar \ LOWER.txt
C: \ Foo \ Bar \ Baz \ CASE.txt
* Perlu dua loop karena argumen kedua
rename
harus berupa nama file dan bukan path absolut (seperti yang diperoleh oleh/s
switch).sumber
cmd /c "echo %cd%&
yang pertamafor
? Ini sama sekali tidak perlu.echo %cd%
ada di sana untuk menambahkan folder saat ini ke daftar jalur absolut ; dancmd /c
membuat&
pekerjaan untuk menggabungkan perintah. Saya benar-benar noob tentang Windows Batch Scripting ; jika Anda mengetahui cara yang lebih baik, silakan meningkatkan jawabannya!Anda dapat menggunakan strategi "penggantian karakter" ...
... dan seterusnya, untuk surat AZ. Anda mungkin bisa mengimplementasikannya dalam bentuk loop FOR.
sumber
http://www.dostips.com/DtCodeCmdLib.php#Function.toLower memberikan fungsi sederhana yang harus dapat Anda sertakan dan panggil dari file batch.
Jadi mintalah file batch iterate di atas folder / nama file, dan panggil fungsi ini untuk menghasilkan versi huruf kecil dari nama tersebut.
sumber
Dari http://windowsitpro.com/articles/index.cfm?articleid=81612 :
Hanya menggunakan perintah standar, saya telah menulis LwrCase.bat dan LwrCase_Folder.bat, untuk mengubah nama nama file menjadi huruf kecil, atau mengubah nama semua nama file dalam folder ke huruf kecil.
Untuk mengganti nama file menjadi huruf kecil, gunakan:
Di mana FullyQualifiedFileName adalah nama file yang sepenuhnya memenuhi syarat untuk diganti namanya.
Untuk mengganti nama semua nama file dalam direktori, gunakan:
di mana FullyQualifiedDirectoryName adalah jalur folder yang sepenuhnya memenuhi syarat, dan / S adalah parameter opsional yang juga akan mengganti nama nama file di semua sub-folder.
CATATAN: LwrCase.bat menggunakan saklar / L dari perintah DIR, yang mengembalikan nama huruf kecil.
LwrCase.bat berisi:
LwrCase_Folder.bat berisi:
sumber
Program terbaik untuk melakukan ini di Windows adalah Bulk Rename Utility . Ini adalah alat pria. Anda bahkan dapat menggunakan regex untuk mengganti nama file dan / atau folder. Ini juga memiliki integrasi shell (sehingga Anda dapat mengeksekusi dari explorer dengan klik kanan) yang sangat bagus. Tersedia versi 64 bit dan 32 bit.
sumber
Jawaban yang diterima untuk pertanyaan ini, oleh loftysnake , berfungsi untuk direktori saat ini tetapi tidak mencari subfolder. Sawny menyarankan modifikasi sederhana untuk jawaban loftysnake untuk membuatnya rekursif, tetapi tidak bekerja, karena, sementara
rename
perintah memungkinkan Anda untuk menentukan drive dan path dengan nama file1 (sumber), nama file2 (tujuan) harus hanya nama file . Mengutip pesan help (/?
),Tetapi
move
berfungsi jikarename
tidak, sehingga Anda dapat mengubah nama file menjadi huruf kecil dengan perintah ini secara rekursif:karena ternyata itu
Move
bisa mengatasi jalur direktori.Perintah di atas berfungsi ketika diketik langsung ke Command Prompt (
CMD.EXE
). Jika Anda ingin melakukan ini dari dalam file batch (.BAT
), Anda harus menggandakan%
karakter:Dan Anda mungkin dapat meninggalkan tanda kurung dan
/y
dan mengatakan adildo move …
.sumber
move
bekerja di manarename
tidak, dan saya pikir saya satu-satunya yang telah menyarankan penggunaanmove
perintah di sini. Saya hanya mengambil saran @loftysnake dan @snyny, dan semoga sedikit memperbaikinya.move
, tetapi saya tidak dapat menemukannya sekarang.Solusi rekursif. Masukkan ini ke file recursiverename.cmd ..
sumber
Powershell
Arahkan ke dir dan jalankan:
Saya telah memverifikasi bahwa ini berfungsi. Ditemukan di sini: http://www.hanselman.com/blog/PennyPinchingVideoMovingMyWebsitesImagesToTheAzureCDNAndUsingACustomDomain.aspx
sumber