Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # https://pastebin.com/Aq7aBPCx
- # PowerShell solution to bulk rename files (e.g. "2068227794 (0x8f860be3).Wwise" to "0x8f860be3_00646.Wwise")
- # This is just an example, adjust this to your needs.
- $Host.UI.RawUI.WindowTitle = 'Bulk File Renamer'
- $source = "C:\adjust\path"
- $start = (Get-Date)
- Get-ChildItem -Path $source -File -Recurse -Include "* (0x*).*" | ForEach-Object {
- if ($prev_dir -ne $_.DirectoryName) {
- $hex_list = $null
- $prev_dir = $_.DirectoryName
- $hex_list = New-Object System.Collections.Hashtable
- }
- $hex_name = ($_.BaseName).Split('()')[1]
- $cur_hex = ($_.DirectoryName + "\" + $hex_name)
- if (Test-Path ($cur_hex + $_.Extension)) {
- $new_name1 = ($hex_name + "_00001" + $_.Extension)
- $new_name2 = ($hex_name + "_00002" + $_.Extension)
- $old_name = ($cur_hex + $_.Extension)
- Rename-Item -Path $old_name -NewName $new_name1
- Rename-Item -Path $_ -NewName $new_name2
- Write-Host "Renamed '$old_name' to '$new_name1' `nRenamed '$_' to '$new_name2'"
- } elseif (Test-Path ($cur_hex + "_00001" + $_.Extension)) {
- if ($hex_list.Contains($cur_hex)) {
- $i = $hex_list.Item($cur_hex) + 1
- $n = "_{0:D5}" -f $i
- $hex_list.Remove($cur_hex)
- $hex_list.Add($cur_hex, $i)
- } else {
- $n = "_00001"
- $i = 1
- while (Test-Path ($cur_hex + $n + $_.Extension)) {
- $i++
- $n = "_{0:D5}" -f $i
- }
- $hex_list.Add($cur_hex, $i)
- }
- $new_name = ($hex_name + $n + $_.Extension)
- Rename-Item -Path $_ -NewName $new_name
- Write-Host Renamed `'$_`' to `'$new_name`'
- } else {
- $new_name = ($hex_name + $_.Extension)
- Rename-Item -Path $_ -NewName $new_name
- Write-Host Renamed `'$_`' to `'$new_name`'
- }
- }
- Write-Host ((Get-Date) - $start).ToString("hh\:mm\:ss\.fff")
Add Comment
Please, Sign In to add comment