Windows 命令速查笔记(HDD 排查 & 微信数据迁移)
目的:记录本次操作中实际用到的 Windows 命令及其用途,方便以后照抄。
原则:排查阶段全部只读、零风险;迁移阶段先复制后重定向,源数据始终保留。
一、只读排查(不动任何数据)
| 命令 / 工具 |
用途 |
Get-PhysicalDisk(PowerShell) |
看每块磁盘的健康状态(Healthy / Unhealthy)、类型(HDD/SSD)。 |
Get-WinEvent -FilterHashtable @{LogName='System'; ...}(PowerShell) |
读系统事件日志,找磁盘坏块 / 控制器重置 / 超时等错误。7 天零错误 = 盘大概率没坏。 |
Get-StorageReliabilityCounter(PowerShell,需管理员) |
读 SMART 等效计数器(介质错误、读写错误、通电时长),相当于命令行的 CrystalDiskInfo。 |
Get-Counter '\PhysicalDisk(*)\...'(PowerShell) |
实时看磁盘活动时间 / 队列长度 / 平均响应时间,判断是被压满还是在挣扎。 |
Get-Disk | Get-Partition | Get-Volume(PowerShell) |
看磁盘号 ↔ 盘符对应关系(哪个 Disk 是 C/D/W…)。 |
| 任务管理器 → 性能 → 磁盘 / 资源监视器 |
图形化看哪个进程在刷盘、活动百分比多少。无需命令。 |
| CrystalDiskInfo(图形工具,非命令) |
看 SMART 属性(05 重分配扇区 / C5 待映射 / C7 CRC 错误等)和健康状态。 |
二、复制迁移(先复制、不删源)
| 命令 |
用途 |
robocopy "源目录" "目标目录" /E /COPY:DAT /R:1 /W:1 |
复制整个目录树到 SSD。 |
↳ /E |
包含空子目录。 |
↳ /COPY:DAT |
复制 数据+属性+时间戳。避开 /COPYALL 的审计特权报错(见坑①)。 |
↳ /R:1 /W:1 |
失败重试 1 次、间隔 1 秒(别用默认 100 万次重试)。 |
robocopy "源" "目标" /E /COPY:DAT /R:1 /W:1 /L |
只读比对:不真正复制,只列出会做什么。末尾 Copied=0 / FAILED=0 即源目标完全一致。 |
| 续传 |
同一条命令重跑即可:已完整复制的文件自动跳过,只补剩下的,中断也安全。 |
三、重定向(让应用无感知地改用 SSD)
| 命令 |
用途 |
ren "旧目录" "旧目录.old" |
把原数据目录改名备份(先不删,留作安全网)。 |
mklink /J "原路径" "SSD路径" |
建目录 junction(软链接):之后访问原路径,实际读写发生在 SSD,应用完全无感知。返回 Junction created 即成功。 |
四、踩过的坑(照搬可避雷)
robocopy /COPYALL 报错 You do not have the Manage Auditing user right
→ 普通/管理员常缺“审计”特权,改用 /COPY:DAT 即可(没必要复制审计信息)。
- 微信当前目录是
xwechat_files,不是 WeChat Files
→ 新版微信(4.x)用新格式(账号目录带随机后缀);旧格式 record\WeChat Files 是遗留数据。
→ 以微信「设置 → 文件管理」里显示的路径为准,别只按目录名盲搜。
- 建 junction 前必须彻底退出微信(含
WeChatAppEx 进程)
→ 否则旧目录被锁、ren 改名会失败。
- 目标 SSD 选剩余空间充足的盘
→ 本机 W: 剩 359 GB(可用),X: 仅剩 28 GB(不可用),别选错。
- 任何阶段都不先删源目录
→ 复制 → 校验一致 → 应用验证齐全 → 再清旧;旧数据保留数日当备份。
五、本次实际用的关键命令(可直接复用)
# 复制活跃数据目录到 SSD(管理员 CMD)
robocopy "D:\Program Files (x86)\Tencent\WeChat\xwechat_files" "W:\WeChatData\xwechat_files" /E /COPY:DAT /R:1 /W:1
# 只读校验(确认副本与源一致)
robocopy "D:\Program Files (x86)\Tencent\WeChat\xwechat_files" "W:\WeChatData\xwechat_files" /E /COPY:DAT /R:1 /W:1 /L
# 重定向(彻底退出微信后,管理员 CMD)
ren "D:\Program Files (x86)\Tencent\WeChat\xwechat_files" "xwechat_files.old"
mklink /J "D:\Program Files (x86)\Tencent\WeChat\xwechat_files" "W:\WeChatData\xwechat_files"