96 lines
3.7 KiB
PowerShell
96 lines
3.7 KiB
PowerShell
# ========================================
|
|
# PowerShell 深度清理脚本
|
|
# 删除所有构建产物、缓存、临时文件
|
|
# ========================================
|
|
|
|
Write-Host ""
|
|
Write-Host "==========================================" -ForegroundColor Cyan
|
|
Write-Host "Sharp-Basic 深度清理工具" -ForegroundColor Cyan
|
|
Write-Host "==========================================" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# 切换到项目根目录
|
|
Set-Location (Join-Path $PSScriptRoot "..")
|
|
|
|
# 统计删除的目录和文件数量
|
|
$deletedDirs = 0
|
|
$deletedFiles = 0
|
|
|
|
# 1. 删除所有 bin 目录
|
|
Write-Host "[1/7] 正在删除所有 bin 目录..." -ForegroundColor Yellow
|
|
Get-ChildItem -Path . -Recurse -Directory -Filter "bin" -ErrorAction SilentlyContinue | ForEach-Object {
|
|
Write-Host " 删除: $($_.FullName)" -ForegroundColor Gray
|
|
Remove-Item $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
|
|
$deletedDirs++
|
|
}
|
|
|
|
# 2. 删除所有 obj 目录
|
|
Write-Host ""
|
|
Write-Host "[2/7] 正在删除所有 obj 目录..." -ForegroundColor Yellow
|
|
Get-ChildItem -Path . -Recurse -Directory -Filter "obj" -ErrorAction SilentlyContinue | ForEach-Object {
|
|
Write-Host " 删除: $($_.FullName)" -ForegroundColor Gray
|
|
Remove-Item $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
|
|
$deletedDirs++
|
|
}
|
|
|
|
# 3. 删除 .vs 目录(Visual Studio 缓存)
|
|
Write-Host ""
|
|
Write-Host "[3/7] 正在删除 .vs 目录..." -ForegroundColor Yellow
|
|
Get-ChildItem -Path . -Recurse -Directory -Filter ".vs" -Force -ErrorAction SilentlyContinue | ForEach-Object {
|
|
Write-Host " 删除: $($_.FullName)" -ForegroundColor Gray
|
|
Remove-Item $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
|
|
$deletedDirs++
|
|
}
|
|
|
|
# 4. 删除 TestResults 目录
|
|
Write-Host ""
|
|
Write-Host "[4/7] 正在删除 TestResults 目录..." -ForegroundColor Yellow
|
|
Get-ChildItem -Path . -Recurse -Directory -Filter "TestResults" -ErrorAction SilentlyContinue | ForEach-Object {
|
|
Write-Host " 删除: $($_.FullName)" -ForegroundColor Gray
|
|
Remove-Item $_.FullName -Recurse -Force -ErrorAction SilentlyContinue
|
|
$deletedDirs++
|
|
}
|
|
|
|
# 5. 删除临时文件
|
|
Write-Host ""
|
|
Write-Host "[5/7] 正在删除临时文件..." -ForegroundColor Yellow
|
|
$tempPatterns = @("*.tmp", "*.temp", "*.log", "*.cache", "*.bak", "*.user")
|
|
foreach ($pattern in $tempPatterns) {
|
|
Get-ChildItem -Path . -Recurse -File -Filter $pattern -ErrorAction SilentlyContinue | ForEach-Object {
|
|
Write-Host " 删除: $($_.FullName)" -ForegroundColor Gray
|
|
Remove-Item $_.FullName -Force -ErrorAction SilentlyContinue
|
|
$deletedFiles++
|
|
}
|
|
}
|
|
|
|
# 6. 使用 dotnet clean
|
|
Write-Host ""
|
|
Write-Host "[6/7] 使用 dotnet clean 清理解决方案..." -ForegroundColor Yellow
|
|
Push-Location "src\Sharp"
|
|
dotnet clean Sharp.sln --verbosity minimal
|
|
Pop-Location
|
|
|
|
# 7. 清理 NuGet 包缓存(可选,慎用)
|
|
Write-Host ""
|
|
Write-Host "[7/7] 是否清理 NuGet 包缓存?" -ForegroundColor Yellow
|
|
Write-Host " 警告: 这将删除所有缓存的 NuGet 包,下次构建需要重新下载" -ForegroundColor Red
|
|
$response = Read-Host " 输入 'yes' 继续,任意键跳过"
|
|
if ($response -eq 'yes') {
|
|
Write-Host " 正在清理 NuGet 缓存..." -ForegroundColor Gray
|
|
dotnet nuget locals all --clear
|
|
} else {
|
|
Write-Host " 已跳过 NuGet 缓存清理" -ForegroundColor Gray
|
|
}
|
|
|
|
# 显示统计信息
|
|
Write-Host ""
|
|
Write-Host "==========================================" -ForegroundColor Cyan
|
|
Write-Host "清理完成!" -ForegroundColor Green
|
|
Write-Host "==========================================" -ForegroundColor Cyan
|
|
Write-Host "删除的目录数: $deletedDirs" -ForegroundColor White
|
|
Write-Host "删除的文件数: $deletedFiles" -ForegroundColor White
|
|
Write-Host ""
|
|
|
|
# 暂停以便查看结果
|
|
Read-Host "按回车键退出"
|