Private/Move-FileToDirectory.ps1
|
function Move-FilesToDirectory { <# .SYNOPSIS Moves files to target directory with overwrite handling. .PARAMETER Files List of files to move. .PARAMETER TargetDirectory Destination directory. .PARAMETER Force Switch to overwrite existing files. #> param( [Parameter(Mandatory)] [System.Collections.Generic.List[object]]$Files, [Parameter(Mandatory)] [System.IO.DirectoryInfo]$TargetDirectory, [switch]$Force ) foreach ($file in $Files) { $destinationPath = Join-Path -Path $TargetDirectory.FullName -ChildPath $file.Name if (Test-Path -LiteralPath $destinationPath) { if ($Force) { Write-Verbose "Overwriting: $destinationPath" Move-Item -LiteralPath $file.FullName -Destination $destinationPath -Force } else { Write-Verbose "Skipping (exists): $destinationPath" } } else { Move-Item -LiteralPath $file.FullName -Destination $destinationPath } } } |