Zmień nazwę wielu plików na „Data modyfikacji / czas” za pomocą cmd lub Powershell

9

Mam w folderze setki plików JPG. Chcę zmienić nazwę każdego pliku, aby nazwa pliku została zastąpiona przez „Data / godzina modyfikacji” tego pliku, a mianowicie DD.MM.RRRR.HH.MM.jpg. Na przykład,

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

Ponieważ dwukropek (:) nie może być używany w nazwach plików, dwukropek między GG i MM musi zostać zastąpiony kropką.

Nie chcę używać narzędzia innej firmy. Czy możesz podać mi kod do osiągnięcia tego w Powershell lub wierszu poleceń?

Mehper C. Palavuzlar
źródło

Odpowiedzi:

15

Wypróbuj to w Powershell:

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

Mam nadzieję, że nie macie nic przeciwko mojej opinii tutaj.

„Zmień nazwę elementu” dał mi ten błąd: Zmień nazwę elementu: Nie można utworzyć pliku, gdy ten plik już istnieje.

Dodałem więc do rozwiązania Siim K w następujący sposób i uruchomiłem to w 'Windows Powershell ISE':

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

Odkryłem, że kolejność „rrrr.MM.dd.mm.ss.ss” wyświetlała moje zdjęcia lepiej i rozpoznałam, że żadna liczba moich zdjęć nie została zmniejszona (przypadkowo wyczyszczona) również w folderze. Mam nadzieję, że jest to pomocne dla innych „superużytkowników” (początkujących lub doświadczonych).

Tony Nilsson
źródło