Ganti nama banyak file dengan “Tanggal / Waktu yang Dimodifikasi” menggunakan cmd atau Powershell

9

Saya memiliki ratusan file JPG di folder. Saya ingin mengganti nama setiap file sehingga nama file diganti dengan "Tanggal / Waktu yang Dimodifikasi" dari file itu, yaitu DD.MM.RRRR.HH.MM.jpg. Sebagai contoh,

Before    After  

001.jpg   11.01.2011.16.58.jpg  
002.jpg   12.01.2011.09.32.jpg  
003.jpg   14.01.2011.12.41.jpg  
...       ...

Karena titik dua (:) tidak dapat digunakan dalam nama file, titik dua antara HH dan MM harus diganti dengan titik.

Saya tidak ingin menggunakan alat pihak ke-3. Bisakah Anda memberi saya kode untuk mencapai ini di Powershell atau baris perintah?

Mehper C. Palavuzlar
sumber

Jawaban:

15

Coba ini di Powershell:

Get-ChildItem *.jpg | Rename-Item -newname {$_.LastWriteTime.toString("dd.MM.yyyy.HH.mm") + ".jpg"}
Siim K
sumber
0

Saya harap kalian tidak keberatan dengan tanggapan saya di sini.

'Ganti nama-Item' memberi saya kesalahan ini: Ganti nama-Item: Tidak dapat membuat file ketika file itu sudah ada.

Jadi saya telah menambahkan ke solusi Siim K sebagai berikut dan menjalankan ini dalam 'Windows Powershell ISE':

Get-ChildItem * .jpg | ForEach-Object {$ NewName = $ .LastWriteTime.toString ("yyyy.MM.dd.HH.mm.ss.ss") + ($ script: i ++) + ".jpg" $ Destination = Bergabung-Path -Path $ .Directory.FullName -ChildPath $ NewName Move-Item -Path $ _. FullName -Destination $ Destination -Force}

Saya menemukan urutan 'yyyy.MM.dd.mm.ss.ss' mencantumkan gambar saya lebih baik dan saya mengenali daripada tidak ada jumlah gambar saya berkurang (sengaja dibersihkan) dalam folder juga. Saya harap ini bermanfaat untuk 'pengguna super' lainnya (pemula atau berpengalaman).

Tony Nilsson
sumber