## _ALPHA_CHANNEL_ _command_line_ _image_manipulations_ 

A PowerShell Script which copies files from DIR_IN to DIR_OUT, while renaming each file to the time said file was last modified.

#My Working Directories
$DIR_IN = 'C:\alpha\input'$DIR_OUT = 'C:\alpha\output'

#Loop Over DIR_IN
$Items = Get-ChildItem -Path$DIR_IN
ForEach ($old_name in$items)
{

#Assemble New Name
$base =$old_name.LastWriteTime
$base =$base.ToString("yyyy-MM-dd-hh-mm-ss")
$base += '-BrettRants'$ext = $old_name.Extension$new_name = $base +$ext

#Path In and Out
$path_in = JOIN-PATH$DIR_IN $old_name$path_out = JOIN-PATH $DIR_OUT$new_name

#A Bit Of Feedback
$path_in$path_out

#Make The New Copy
Copy-Item $path_in$path_out

}


To work, the above would need to be saved as a Powershell Script and run from file. And to do that, the Execution Policy needs to be reset:
Set-ExecutionPolicy Bypass -Scope Process


The only part of the above which is the least bit interesting to me is the portion entitled #Assemble New Name, so that's the only portion I will discuss further.
• #Assemble New Name
• Shall we comment?
• Yes, we shall.
• $base =$old_name.LastWriteTime
• This extracts a time object from the old file...
• Meaning, $old_name would have been more accurately called $file_in.
• Live & Learn!
• $base =$base.ToString("yyyy-MM-dd-hh-mm-ss")
• The time object is converted to a string in the noted format.
• $base += '-BrettRants' • You may not want this part. • I do. • $ext = $old_name.Extension • It's really handy that PowerShell Items are Complete Objects. • I'm finding everything to be very robust. • $new_name = $base +$ext
• And here we have a simple bit of string concatenation.

Bam!

And done!