Redid the File Renamer script for you based on what you asked for. This should tag common video files as v and pictures (well everything that isn’t excluded) as p. I also added a file browser to the script as well as a general graphical interface to kind of make things simpler. If you don’t want it in there I can easily strip it out and put it back to command line.
<#---------------------------------------------------------------------
Script: Renamer.ps1
Author: Daniel Belcher
Modified: 11/5/11
---------------------------------------------------------------------#>
FUNCTION Folder($MSG, $PATH) {
$SHELL = New-Object -comObject Shell.Application
$FOLDER = $SHELL.BrowseForFolder(0, $MSG, 0, $PATH)
if ($FOLDER -ne $NULL)
{$FOLDER.self.Path}
}
FUNCTION Message($MSG, $TITLE) {
$SHELL = New-Object -ComObject Wscript.Shell
$SHELL.Popup($MSG,0,$TITLE,1)
}
<#---------------------------------------------------------------------
Select Folder with contnets to modify via Shell.Application namespace
and verify that the choice is correct with Wscript popup method.
---------------------------------------------------------------------#>
$FOLDER = Folder -MSG "Select your folder..." -Path .\
if($FOLDER -eq $NULL) {
Message -MSG "Must select a folder to continue." -Title "Error"
break}
$VERIFY = (Message `
"You Selected:
$Folder
Its contents will be renamed, are you sure?" -Title "Verify")
if($VERIFY -eq "2") {break}
<#---------------------------------------------------------------------
Grab directory contents and process
---------------------------------------------------------------------#>
$LIST = Get-ChildItem "$FOLDER\*" -Exclude `
*ps1,*exe,*mp3,*dll,*ini,*cfg,*ocx,*doc?,*xls?,*txt|Sort-Object lastwritetime
$X = 0
ForEach($OBJECT in $LIST)
{$EXTENSION = $OBJECT.ToString().Split("\") | Select -Last 1;
$EXTENSION = $EXTENSION.Split(".") | Select-Object -Last 1
if($EXTENSION.Contains("ps1") -eq $TRUE){break}
$TYPE = "p"
switch($EXTENSION){
mov{$TYPE = "v"}
avi{$TYPE = "v"}
wmv{$TYPE = "v"}
mpg{$TYPE = "v"}
mpeg{$TYPE = "v"}
}
$FILEINFO = New-Object System.IO.DirectoryInfo($OBJECT)
$NAME = $FILEINFO.LastWriteTime.GetDateTimeFormats() |`
Select-Object -Index 99
$NAME = "$($NAME) ($($X)) $($TYPE).$($EXTENSION)"
Write-Output $NAME
Rename-Item -Path "$OBJECT" $NAME
$X = $X+1
}
<#---------------------------------------------------------------------
END
---------------------------------------------------------------------#>
#.
Feel free to modify this anyway you like, add more extensions, exclude more etc. This was kind of a lazy hack to get you what you told me, and I had a few minutes to kill since I couldn’t sleep tonight.