function Rename-TemporaryConfigFiles { <# .SYNOPSIS Renames Temporary Configuration Files to remove the "new." prefix. For example, new.web.config is renamed to web.config #> [CmdletBinding()] param( [Parameter(Mandatory=$true)] [string[]]$temporaryConfigFiles, [Parameter(Mandatory=$false)] [Alias("Force")] [switch]$forceOverwrite ) $logLead = (Get-LogLeadName); foreach ($configfile in $temporaryConfigFiles) { [Regex]$newMatchRegex = "\\new\." $finalConfigFileName = $newMatchRegex.Replace($configFile, "\") if (Test-Path $finalConfigFileName) { if ($forceOverwrite.IsPresent) { Write-Host ("$logLead : Config file '{0}' already exists and will be removed before rename." -f $finalConfigFileName) Remove-Item "$finalConfigFileName" -Force } else { Write-Warning ("$logLead : Config file '{0}' already exists. No changes will be made. To overwrite the file, use the -Force parameter" -f $finalConfigFileName) continue } } Write-Host ("$logLead : Renaming file '{0}' to '{1}'" -f $configFile, $finalConfigFileName) Rename-Item "$configfile" "$finalConfigFileName" -Force:$forceOverwrite } }