You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅在Windows系统C盘为机械硬盘(HDD)而非SSD时执行defrag操作

仅C盘为HDD时执行碎片整理的PowerShell实现方案

注意:所有操作需要以管理员身份运行PowerShell才有权限读取磁盘硬件信息、执行碎片整理命令


完整可执行脚本

# 定位C盘所在的物理磁盘
$cDisk = Get-Partition -DriveLetter C | Get-PhysicalDisk

# 介质类型判定:3=SSD,4=HDD
if ($cDisk.MediaType -eq 4) {
    Write-Host "C盘介质为机械硬盘,开始执行碎片整理"
    defrag C: /O
    Write-Host "碎片整理执行完成"
}
else {
    Write-Host "C盘介质为固态硬盘/无法识别,跳过碎片整理"
}

核心逻辑说明

  • 介质判定规则:Get-PhysicalDisk返回的MediaType为枚举值,直接比对数值即可避免字符串匹配的兼容性问题,取值对应关系为:
    • 0:无法识别的介质类型
    • 3:固态硬盘(SSD)
    • 4:机械硬盘(HDD)
  • 磁盘映射逻辑:先通过Get-Partition定位C盘分区,再关联到对应的物理磁盘,避免多磁盘设备下误判其他磁盘的介质类型
  • 安全冗余:碎片整理命令使用/O参数,会自动根据磁盘类型执行对应优化操作,即使判定逻辑出现异常,也不会对SSD执行会缩短寿命的常规碎片整理操作

特殊场景适配

  • 如果运行脚本时返回介质类型为0(无法识别),可手动添加自定义判定逻辑:读取磁盘的随机寻道时间、转速等参数辅助判定,或直接指定跳过操作即可。
  • 如果是Windows 7系统,将脚本中的defrag命令替换为defrag C: /H /U /V即可正常运行。
  • 如果需要配置定时执行,在Windows任务计划程序中导入该脚本时,勾选「使用最高权限运行」选项即可。

内容的提问来源于stack exchange,提问作者Angelo Tashji Cusah Lo Iacono

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:54:07