Private/Manage-VSCodeVersions.ps1
|
function Manage-VSCodeVersions { [CmdletBinding()] param( [int]$Keep = 3 ) $root = Join-Path $env:LOCALAPPDATA "Programs" $prefix = "VSCode-" $versions = Get-ChildItem $root -Directory | Where-Object { $_.Name -like "$prefix*" } | Sort-Object Name -Descending if ($versions.Count -le $Keep) { return } $toDelete = $versions | Select-Object -Skip $Keep foreach ($dir in $toDelete) { Write-Log "[CLEANUP] Removing old VS Code version: $($dir.FullName)" try { Remove-Item $dir.FullName -Recurse -Force -ErrorAction Stop } catch { Write-Log "[CLEANUP] Failed to remove $($dir.FullName): $($_.Exception.Message)" } } } |