Переименуйте несколько файлов в «Дата и время изменения», используя 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") + ($ script: i ++) + ".jpg" $ Назначение = Join-Path -Path $ .Directory.FullName -ChildPath $ NewName Move-Item -Path $ _. FullName -Destination $ Destination -Force}

Я обнаружил, что порядок 'yyyy.MM.dd.mm.ss.ss' перечисляет мои изображения лучше, и я узнал, что ни одно из моих изображений не было уменьшено (случайно удалено) также в папке. Я надеюсь, что это полезно для других суперпользователей (начинающих или опытных).

Тони Нильссон
источник