包含: - furniture-3d-system:Next.js 16 全栈应用(资产中心、产品管理、3D装配动画) - autocad-plugin:AutoCAD 家具导出插件源码 - 资产中心改造:编辑弹窗化、删除功能、Toast反馈、自定义Select组件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
69 lines
2.3 KiB
PowerShell
69 lines
2.3 KiB
PowerShell
# Docker VHDX 压缩脚本
|
|
# 用途:压缩 Docker 的 VHDX 虚拟磁盘文件
|
|
# 注意:此操作需要停止 Docker Desktop
|
|
|
|
Write-Host "=== Docker VHDX 压缩工具 ===" -ForegroundColor Cyan
|
|
Write-Host "此操作将停止 Docker Desktop 并压缩 VHDX 文件`n" -ForegroundColor Yellow
|
|
|
|
$vhdxPath = "D:\Users\Mr_Wu01\Documents\DockerDesktopWSL\disk\docker_data.vhdx"
|
|
|
|
# 1. 检查文件是否存在
|
|
if (!(Test-Path $vhdxPath)) {
|
|
Write-Host "❌ 未找到 VHDX 文件: $vhdxPath" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# 2. 显示当前大小
|
|
$originalSize = [math]::Round((Get-Item $vhdxPath).Length/1GB, 2)
|
|
Write-Host "当前 VHDX 文件大小: $originalSize GB" -ForegroundColor Yellow
|
|
|
|
# 3. 确认操作
|
|
$confirm = Read-Host "`n是否继续压缩?这将停止 Docker Desktop (Y/N)"
|
|
if ($confirm -ne 'Y' -and $confirm -ne 'y') {
|
|
Write-Host "操作已取消" -ForegroundColor Yellow
|
|
exit 0
|
|
}
|
|
|
|
# 4. 停止 Docker Desktop
|
|
Write-Host "`n停止 Docker Desktop..." -ForegroundColor Yellow
|
|
Stop-Process -Name "Docker Desktop" -Force -ErrorAction SilentlyContinue
|
|
Start-Sleep -Seconds 3
|
|
|
|
# 5. 关闭 WSL
|
|
Write-Host "关闭 WSL..." -ForegroundColor Yellow
|
|
wsl --shutdown
|
|
Start-Sleep -Seconds 5
|
|
|
|
# 6. 压缩 VHDX
|
|
Write-Host "`n开始压缩 VHDX 文件..." -ForegroundColor Yellow
|
|
Write-Host "这可能需要几分钟,请耐心等待..." -ForegroundColor Cyan
|
|
|
|
$diskpartScript = @"
|
|
select vdisk file="$vhdxPath"
|
|
attach vdisk readonly
|
|
compact vdisk
|
|
detach vdisk
|
|
"@
|
|
|
|
$diskpartScript | diskpart
|
|
|
|
# 7. 显示压缩后大小
|
|
Start-Sleep -Seconds 2
|
|
$newSize = [math]::Round((Get-Item $vhdxPath).Length/1GB, 2)
|
|
$saved = $originalSize - $newSize
|
|
|
|
Write-Host "`n=== 压缩完成 ===" -ForegroundColor Green
|
|
Write-Host "原始大小: $originalSize GB" -ForegroundColor Yellow
|
|
Write-Host "压缩后大小: $newSize GB" -ForegroundColor Green
|
|
Write-Host "节省空间: $saved GB" -ForegroundColor Cyan
|
|
|
|
# 8. 询问是否重启 Docker
|
|
$restart = Read-Host "`n是否重启 Docker Desktop? (Y/N)"
|
|
if ($restart -eq 'Y' -or $restart -eq 'y') {
|
|
Write-Host "`n启动 Docker Desktop..." -ForegroundColor Yellow
|
|
Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe"
|
|
Write-Host "Docker Desktop 正在启动..." -ForegroundColor Green
|
|
}
|
|
|
|
Write-Host "`n✅ 操作完成!" -ForegroundColor Green
|