72 lines
1.9 KiB
PowerShell
72 lines
1.9 KiB
PowerShell
param (
|
|
[switch] $Confirm,
|
|
[switch] $WhatIf
|
|
)
|
|
|
|
Function PrettifyFileSize($bytes) {
|
|
switch ($bytes) {
|
|
{ $_ -gt 1PB } { return '{0,6:0.00} PB' -f ($_ / 1PB) }
|
|
{ $_ -gt 1TB } { return '{0,6:0.00} TB' -f ($_ / 1TB) }
|
|
{ $_ -gt 1GB } { return '{0,6:0.00} GB' -f ($_ / 1GB) }
|
|
{ $_ -gt 1MB } { return '{0,6:0.00} MB' -f ($_ / 1MB) }
|
|
{ $_ -gt 1KB } { return '{0,6:0.00} kB' -f ($_ / 1KB) }
|
|
default { return '{0,7:0} B' -f $_ }
|
|
}
|
|
}
|
|
|
|
Function GetDirSize($path) {
|
|
return [int64] (Get-ChildItem $path -Recurse -Force | Measure-Object Length -Sum).Sum
|
|
}
|
|
|
|
$allDirs =
|
|
"$env:LocalAppData\Microsoft\vscode-cpptools\ipch",
|
|
"$env:AppData\Code\Cache",
|
|
"$env:AppData\Code\CachedData",
|
|
"$env:AppData\Code\CachedExtensions",
|
|
"$env:AppData\Code\CachedExtensionVSIXs",
|
|
"$env:AppData\Code\Code Cache",
|
|
"$env:AppData\Code\Crashpad",
|
|
"$env:AppData\Code\logs",
|
|
"$env:AppData\Code\Service Worker\CacheStorage",
|
|
"$env:AppData\Code\Service Worker\ScriptCache",
|
|
"$env:AppData\Code\User\History",
|
|
"$env:AppData\Code\User\workspaceStorage",
|
|
"$env:UserProfile\.vscode-server\data\CachedExtensions",
|
|
"$env:UserProfile\.vscode-server\data\CachedExtensionVSIXs",
|
|
"$env:UserProfile\.vscode-server\data\logs",
|
|
"$env:UserProfile\.vscode-server\data\User\History",
|
|
"$env:UserProfile\.vscode-server\data\User\workspaceStorage"
|
|
|
|
$dirsData = @()
|
|
|
|
foreach ($path in $allDirs) {
|
|
if (Test-Path -Path $path) {
|
|
# $row = '' | select Path, Size
|
|
$row = '' | Select-Object Path, Size
|
|
$row.Path = $path
|
|
$row.Size = PrettifyFileSize(GetDirSize($path))
|
|
$dirsData += $row
|
|
}
|
|
}
|
|
|
|
Write-Host $($dirsData | Format-Table | Out-String)
|
|
|
|
if (!$Confirm -and ($(Read-Host "Confirm to clear? [y/N]") -ne 'y')) {
|
|
Write-Host "Quit"
|
|
exit
|
|
}
|
|
|
|
foreach ($item in $dirsData) {
|
|
$target = "$($item.Path)\*"
|
|
Write-Host "Clean up ($($item.Size)): $($item.Path)"
|
|
$params = @{
|
|
Path = $target
|
|
Recur = $true
|
|
Force = $true
|
|
WhatIf = $WhatIf
|
|
}
|
|
Remove-Item @params
|
|
}
|
|
|
|
Write-Host "Cleanup is done."
|