# encoding: ascii # api: powershell # title: Reverse filename sequenc # description: This script will rename a sequenced set of files in a directory. # version: 0.9 # type: script # author: Sean Wendt # license: CC0 # x-poshcode-id: 3113 # x-archived: 2015-01-26T04:27:47 # x-published: 2012-12-22T00:22:00 # # # Reverse filename sequence v 0.9 # Author: Sean Wendt # # This script will rename a sequenced set of files in a directory. # For example, you have foobar01.jpg, foobar02.jpg, foobar03.jpg # -- it will reverse the order, so the last file is now 01, the second to last 02, etc.. # # Limitations: -You cannot use the same filename prefix, i.e. foobar must change to foobars. # -It's hardcoded to only support 5 digit numbers right now. # -Similarly, it will only support a file sequence with up to 5 digits. # This is the first script I've written, I know it's not great! ;) # Help to make it better would be appreciated. Thanks. # $file_extension = Read-Host "Enter file extension, i.e. .jpg or .txt" $file_prefix = Read-Host "Enter file prefix, i.e. entering foobar will rename files to foobar001.ext, foobar002.ext, etc.." $files = Get-ChildItem | ?{ $_.PSIsContainer -ne "True"} # Creates array of files in current directory, ignores folders $idx = 0 # Sets index value (0 = filenames start at foobar00000.jpg, modify to 1 to start at foobar00001.jpg) for ($ctr=$files.count; $ctr -gt 0 ; --$ctr) { if (($idx -ge 0) -and ($idx -le 9)) { Rename-Item -path $files[$ctr-1].name -newname ($file_prefix + '00000' + $idx++ + $file_extension) } elseif (($idx -ge 10) -and ($idx -le 99)) { Rename-Item -path $files[$ctr-1].name -newname ($file_prefix + '0000' + $idx++ + $file_extension) } elseif (($idx -ge 100) -and ($idx -le 999)) { Rename-Item -path $files[$ctr-1].name -newname ($file_prefix + '000' + $idx++ + $file_extension) } elseif (($idx -ge 1000) -and ($idx -le 9999)) { Rename-Item -path $files[$ctr-1].name -newname ($file_prefix + '00' + $idx++ + $file_extension) } elseif (($idx -ge 10000) -and ($idx -le 99999)) { Rename-Item -path $files[$ctr-1].name -newname ($file_prefix + '0' + $idx++ + $file_extension) } $idx #prints the index # it just completed }