Windows 脚本现在占用您硬盘的几个小时

Windows 脚本现在占用您硬盘的几个小时

我想编写一个脚本来检查硬盘的运行时间,以防止丢失信息。有办法吗?我在网上查过了,但找不到任何批处理命令。谢谢帮助!

(PS:抱歉我的英文不好。)

答案1

如何从命令行检查开机时间?

您可以使用磁盘智能视图尼尔软件在批处理文件中。

获取磁盘电源开启时间.cmd:

@echo off
setlocal enabledelayedexpansion
rem get report using disksmartview from nirsoft
disksmartview /scomma smart.txt
for /f "usebackq tokens=1,2 delims=," %%l in (`type smart.txt`) do (
  if "%%l" EQU "Disk Number" (
    echo %%l: %%m
    )
  if "%%l" EQU "Power-On Hours (POH)" (
    echo %%l: %%m
    )
  )
endlocal

示例输出:

> GetDiskPowerOnHours
Disk Number: 0
Power-On Hours (POH): 13245
Disk Number: 1
Power-On Hours (POH): 0
Disk Number: 2

笔记:

  • 并非所有驱动器都会存储通电时间
  • 话虽如此,通电时间并不是硬盘故障的有用指标(见下文)

更好的解决方案

使用 SMART 监控程序,它会提前警告您潜在的问题。

有许多可用的,包括:

  • 高清调谐

    HD Tune Pro 是一款功能丰富的硬盘/SSD 实用程序。它可用于测量驱动器的性能、扫描错误、检查健康状态 (SMART)、安全擦除所有数据等等。

  • HDD 健康

    HDD Health 4.2 支持 SSD 驱动器。HDD Health 是一款功能齐全的故障预测代理,适用于使用 2000、XP、Vista、Windows 7 和 Windows 8 的机器。它位于系统托盘中,可监控硬盘并提醒您即将发生故障。该程序使用内置于所有新硬盘中的自我监控和报告技术 (SMART),可以预测硬盘驱动器的故障。大量警报功能包括电子邮件、本地弹出消息、网络消息和事件日志记录,同时不占用任何系统资源。

  • 硬盘专家

    HDDExpert 可让您清晰地了解硬盘 (HDD 或 SSD) 的运行状况和性能,并将 SMART 属性转换为可读指示。然后,它会根据检测到的硬盘故障数量推荐维护(升级风扇、购买备件、备份等)。

  • 智能工具

    smartmontools 软件包包含两个实用程序(smartctl 和 smartd),用于使用内置于大多数现代 ATA/SATA、SCSI/SAS 和 NVMe 磁盘中的自我监控、分析和报告技术系统 (SMART) 来控制和监控存储系统。在许多情况下,这些实用程序将提供磁盘性能下降和故障的预警。Smartmontools 最初源自 Linux ​smartsuite 软件包,实际上支持 ATA/ATAPI/SATA-3 到 -8 磁盘和 SCSI 磁盘和磁带设备。它应该可以在任何现代 Darwin (Mac OS X)、Linux、FreeBSD、NetBSD、OpenBSD、Solaris、OS/2、Cygwin、QNX、eComStation 或 Windows 系统上运行。


预测硬盘故障

一家名为Backblaze收集了硬盘故障数据。该公司在公司博客上发布了这些数据,重点介绍了哪家制造商的硬盘故障频率最高。

硬盘 SMART 统计数据它发布的数据准确地表明了哪 5 个 SMART 属性预示着即将发生驱动器故障:

根据经验,我们发现以下 5 个 SMART 指标预示着即将发生磁盘驱动器故障:

  • SMART 5—重新分配的扇区数。
  • SMART 187—报告的无法纠正的错误。
  • SMART 188—命令超时。
  • SMART 197—当前待处理扇区数。
  • SMART 198—离线_无法纠正。

我们根据自己的经验以及业内其他人的意见选择了这 5 个统计数据,因为它们在各个制造商之间是一致的,并且可以很好地预测故障。

文章继续建议:

SMART 5: Reallocated_Sector_Count
1-4 keep an eye on it, more than 4 replace

SMART 187: Reported_Uncorrect
1 or more replace

SMART 188: Command_Timeout
1-13 keep an eye on it, more than 13 replace

SMART 197: Current_Pending_Sector_Count
1 or more replace

SMART 198: Offline_Uncorrectable
1 or more replace

同样来自 BackBlaze,值得一读的是一篇较新的博客SMART 统计数据告诉我们有关硬盘的哪些信息


磁盘智能视图

DiskSmartView 是一个小型实用程序,可以检索聪明的 IDE/SATA 磁盘的信息(SMART = 自我监控、分析和报告技术)。这些信息包括磁盘型号/固件/序列号、磁柱/磁头、通电时间 (POH)、内部温度、磁盘错误率等。您可以使用 DiskSmartView 检索到的 SMART 信息来查明磁盘驱动器是否存在任何重大问题。

命令行选项

  • /stext <Filename> 将 SMART 信息保存到常规文本文件中。
  • /stab <Filename> 将 SMART 信息保存到制表符分隔的文本文件中。
  • /scomma <Filename> 将 SMART 信息保存到逗号分隔的文本文件 (csv) 中。
  • /stabular <Filename>将 SMART 信息保存到表格文本文件中。
  • /shtml <Filename> 将 SMART 信息保存到 HTML 文件(水平)。
  • /sverhtml <Filename>将 SMART 信息保存到 HTML 文件(垂直)。
  • /sxml <Filename> 将 SMART 信息保存到 XML 文件中。

来源磁盘智能视图


免责声明

我不隶属于尼尔软件无论如何,我只是他们软件的最终用户。


进一步阅读

答案2

在我的系统上运行并出现输出错误:

C:\UTIL>Get-DiskPowerOnHours.cmd
磁盘编号:2
通电小时数 (POH):“48

建议将分隔符更改为制表符,因为我的输出在启动盘上的超过 48000 小时内添加了数千个逗号。

@echo off
setlocal enabledelayedexpansion
rem get report using disksmartview from nirsoft
disksmartview /stab smart.txt
:: Ensure the delims= <tab> as it looks like a space.
for /f "usebackq tokens=1,2 delims= " %%l in (`type smart.txt`) do (
  if "%%l" EQU "Disk Number" (
    echo %%l: %%m
    )
  if "%%l" EQU "Power-On Hours (POH)" (
    echo %%l: %%m
    )
  )
endlocal

进行上述更改后:

C:\UTIL>Get-DiskPowerOnHours.cmd
磁盘编号:2
通电小时数 (POH):48,649

相关内容