เปลี่ยนชื่อหลายไฟล์เป็น“ แก้ไขวันที่ / เวลา” โดยใช้ cmd หรือ Powershell


9

ฉันมีไฟล์ JPG หลายร้อยไฟล์ในโฟลเดอร์ ฉันต้องการที่จะเปลี่ยนชื่อแต่ละไฟล์เพื่อให้ชื่อไฟล์จะถูกแทนที่ด้วย "ดัดแปลงวันที่ / เวลา" DD.MM.RRRR.HH.MM.jpgของไฟล์นั้นคือ ตัวอย่างเช่น,

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  
...       ...

เนื่องจากโคลอน (:) ไม่สามารถใช้ในชื่อไฟล์ได้โคลอนระหว่าง HH และ MM จะต้องถูกแทนที่ด้วยจุด

ฉันไม่ต้องการใช้เครื่องมือของบุคคลที่สาม คุณสามารถให้รหัสแก่ฉันเพื่อให้บรรลุสิ่งนี้ใน Powershell หรือบรรทัดคำสั่งได้หรือไม่

คำตอบ:


15

ลองสิ่งนี้ใน Powershell:

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

0

ฉันหวังว่าพวกคุณจะไม่สนใจข้อเสนอแนะของฉันที่นี่

'Rename-Item' ทำให้ฉันมีข้อผิดพลาดนี้: Rename-Item: ไม่สามารถสร้างไฟล์เมื่อไฟล์นั้นมีอยู่แล้ว

ดังนั้นฉันได้เพิ่มวิธีแก้ปัญหาของ Siim K ดังนี้และเรียกใช้ภายใน 'Windows Powershell ISE':

Get-ChildItem * .jpg | ForEach-Object {$ NewName = $ .LastWriteTime.toString ("yyyy.MM.dd.HH.mm.ss.ss") + ($ สคริปต์: i ++) + ".jpg" $ ปลายทาง = เข้าร่วมเส้นทาง -Path $ .Directory.FullName -ChildPath $ NewName รายการย้าย -Path $ _. FullName -Destination $ ปลายทาง -Force}

ฉันพบว่าคำสั่ง 'yyyy.MM.dd.mm.ss.s' แสดงรายการรูปภาพของฉันได้ดีขึ้นและฉันจำได้ว่าไม่มีการลดจำนวนภาพลง (ลบโดยไม่ตั้งใจ) ภายในโฟลเดอร์ด้วย ฉันหวังว่าสิ่งนี้จะเป็นประโยชน์สำหรับ 'ผู้ใช้ระดับสูง' คนอื่น (ผู้เริ่มต้นหรือผู้มีประสบการณ์)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.