Как использовать System IO в powershell, чтобы получить имя папки без квалификаторов

Моя цель - просмотреть папки и переименовать файлы изображений по дате съемки - имени папки.

Код работает, если я запускаю его в каталоге с фотографиями, используя:

[string]$newDirectory = (Split-Path $Path -Leaf)

В приведенном ниже примере, как я могу получить только «Windows». Любые другие решения будут полезны. Спасибо.

Get-Item: BaseName : explorer Mode : -a--- Name : explorer.exe Length : 2871808 DirectoryName : C:\Windows Directory : C:\Windows IsReadOnly : False Exists : True FullName : C:\Windows\explorer.exe Extension : .exe CreationTime : 27.04.2011 17:02:33 CreationTimeUtc : 27.04.2011 15:02:33 LastAccessTime : 27.04.2011 17:02:33 LastAccessTimeUtc : 27.04.2011 15:02:33 LastWriteTime : 25.02.2011 07:19:30 LastWriteTimeUtc : 25.02.2011 06:19:30 Attributes : Archive


person mslazzer    schedule 24.06.2015    source источник


Ответы (1)


Вы можете сделать это напрямую с помощью команд PowerShell — не нужно переходить к .NET:

Get-ChildItem *.jpg -Recurse | 
    Rename-Item -NewName {Join-Path $_.Directory "$($_.Directory.Name) - $($_.CreationTime.ToString('yyyyMMdd-HH-mm-ss'))$($_.extension)"} -WhatIf

Измените строку формата даты/времени 'yyyyMMdd-HH-mm-ss' по своему вкусу, но избегайте использования : во временной части имени.

person Keith Hill    schedule 24.06.2015
comment
Попробуйте обновленную версию — хотя, поскольку мы фильтруем *.jpg, вы можете просто жестко запрограммировать его на .jpg. :-) - person Keith Hill; 24.06.2015
comment
Это работает для изменения имен файлов на время создания, однако это фотографии, которые необходимо переименовать в «Дата съемки». - person mslazzer; 24.06.2015
comment
Для этого вам нужно будет прочитать данные EXIF ​​из файла. Подробнее см. в этом сообщении в блоге: rkeithhill.wordpress.com/2005/12/10/ - person Keith Hill; 24.06.2015
comment
Хорошо, теперь у меня есть два рабочих скрипта: один, в котором я могу получить дату съемки, но не рекурсивно просматривать папки, и второй, в котором я могу рекурсивно просматривать папки, но не с датой съемки. Я потрачу некоторое время, чтобы попытаться собрать их вместе и опубликовать свое решение. - person mslazzer; 24.06.2015