mslazzer
mslazzer

Reputation: 21

How to use System IO in powershell to get the folder name without qualifiers

My purpose is to recurse through folders and rename picture files by the Date Taken - Folder Name.

The code works if I run it in the directory with the photos in it by using:

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

In the example below, how would I get only "Windows." Any other solutions would be helpful. Thank-you.

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

Upvotes: 0

Views: 348

Answers (1)

Keith Hill
Keith Hill

Reputation: 201922

You can do this directly with PowerShell commands - no need to drop down to .NET:

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

Adjust the date/time format string 'yyyyMMdd-HH-mm-ss' to your liking but avoid using : in the time part of the name.

Upvotes: 1

Related Questions