update script to be invoked only in folder where you want to remove version from folders

This commit is contained in:
Isaac Shoebottom 2024-05-25 21:11:34 -03:00
parent b449ded8fe
commit 642edffcfe

View File

@ -1,59 +1,66 @@
# Get each folder in the current directory # Get each folder in the current directory
$folders = Get-ChildItem -Directory $folders = Get-ChildItem -Directory
# Array of arrays to store work queue
$work = @()
foreach ($folder in $folders) { foreach ($folder in $folders) {
# Get each folder in the folder # Find the version number in the folder name
$new_folders = Get-ChildItem -Path $folder.FullName -Directory $version = $folder.Name -match '(\d+\.\d+\.\d+\.\d+)'
foreach ($folder in $new_folders) { if ($version) {
# Find the version number in the folder name # Replace entire folder name with the version number
$version = $folder.Name -match '(\d+\.\d+\.\d+\.\d+)' $new_name = $matches[0]
if ($version) {
# Replace entire folder name with the version number
$new_name = $matches[0]
# if version has a alpha character, remove it, eg 0.1.0a, then re-add it to new name # if version has a alpha character, remove it, eg 0.1.0a, then re-add it to new name
$alpha = $folder.Name -match '(\d+\.\d+\.\d+\.\d+)([a-zA-Z])' $alpha = $folder.Name -match '(\d+\.\d+\.\d+\.\d+)([a-zA-Z])'
if ($alpha) { if ($alpha) {
$new_name = $matches[1] $new_name = $matches[1]
$new_name = $new_name + $matches[2] $new_name = $new_name + $matches[2]
}
#Rename-Item -Path $folder.FullName -NewName $new_name
Write-Host "Renamed $folder to $new_name"
continue
} }
# Find the version number in the folder name $toadd = @($folder.FullName, $new_name)
$version = $folder.Name -match '(\d+\.\d+\.\d+)' $work += $toadd
if ($version) {
# Replace entire folder name with the version number
$new_name = $matches[0]
# if version has a alpha character, remove it, eg 0.1.0a, then re-add it to new name Write-Host "Rename $folder to $new_name"
$alpha = $folder.Name -match '(\d+\.\d+\.\d+)([a-zA-Z])' continue
if ($alpha) {
$new_name = $matches[1]
$new_name = $new_name + $matches[2]
}
#Rename-Item -Path $folder.FullName -NewName $new_name
Write-Host "Renamed $folder to $new_name"
continue
}
# Find the version number in the folder name
$version = $folder.Name -match '(\d+\.\d+)'
if ($version) {
# Replace entire folder name with the version number
$new_name = $matches[0]
# if version has a alpha character, remove it, eg 0.1.0a, then re-add it to new name
$alpha = $folder.Name -match '(\d+\.\d+)([a-zA-Z])'
if ($alpha) {
$new_name = $matches[1]
$new_name = $new_name + $matches[2]
}
#Rename-Item -Path $folder.FullName -NewName $new_name
Write-Host "Renamed $folder to $new_name"
continue
}
} }
# Find the version number in the folder name
$version = $folder.Name -match '(\d+\.\d+\.\d+)'
if ($version) {
# Replace entire folder name with the version number
$new_name = $matches[0]
# if version has a alpha character, remove it, eg 0.1.0a, then re-add it to new name
$alpha = $folder.Name -match '(\d+\.\d+\.\d+)([a-zA-Z])'
if ($alpha) {
$new_name = $matches[1]
$new_name = $new_name + $matches[2]
}
$toadd = @($folder.FullName, $new_name)
$work += $toadd
Write-Host "Rename $folder to $new_name"
continue
}
# Find the version number in the folder name
$version = $folder.Name -match '(\d+\.\d+)'
if ($version) {
# Replace entire folder name with the version number
$new_name = $matches[0]
# if version has a alpha character, remove it, eg 0.1.0a, then re-add it to new name
$alpha = $folder.Name -match '(\d+\.\d+)([a-zA-Z])'
if ($alpha) {
$new_name = $matches[1]
$new_name = $new_name + $matches[2]
}
$toadd = @($folder.FullName, $new_name)
$work += $toadd
Write-Host "Rename $folder to $new_name"
continue
}
}
Read-Host -Prompt "Press Enter to continue"
foreach ($item in $work) {
Rename-Item -Path $item[0] -NewName $item[1]
} }