利用CrystalDiskInfo软件获取硬盘使用情况-数据提取

      因工作需要,需要对硬盘通电时间,通电次数,总写入量和总读取量信息进行自动提取拦截。

因此特写如下代码,仅做笔记存稿和分享:

代码一:

@echo off
setlocal enabledelayedexpansion
if exist YPerror.ini (del YPerror.ini)
(for /f "tokens=* delims=, " %%a in ('dir/a/s/b .\Smart\*.ini') do (
    set "p=%%~dpa" & for %%i in ("!p:~0,-1!") do (
    for /f "tokens=2 delims==&" %%b in ('type "%%a" ^|findstr "PowerOnHours="^|more +1') do (if %%b GEQ 150 (echo %%~nxi   通电时间超时^(标准150小时^):%%b 小时 >>.\YPerror.ini))
    for /f "tokens=2 delims=^=" %%b in ('type "%%a" ^|find "PowerOnCount="^|more +1') do (if %%b GEQ 100 (echo %%~nxi  通电次数超标^(标准100次^):%%b 次 >>.\YPerror.ini))
    for /f "tokens=2 delims=^=" %%b in ('type "%%a" ^|find "HostWrites="^|more +1') do (if %%b GEQ 500 (echo %%~nxi  主机写入量总计超标^(标准500GB^):%%b GB >>.\YPerror.ini))
    for /f "tokens=2 delims=^=" %%b in ('type "%%a" ^|find "HostReads="^|more +1') do (if %%b GEQ 500 (echo %%~nxi  主机读取量总计超标^(标准500GB^):%%b GB >>.\YPerror.ini))
)))
type yperror.ini
pause>nul
exit

如果不需要提示信息,可将最后2段代码删除:

type yperror.ini
pause>nul

这样就可以只获取超标数据,不会弹出提示。

代码另存为.cmd保存到"Smart"文件夹同级目录下即可,记得一定要用压缩包,不然获取不到数据。

代码二:

@echo off
set Names=PowerOnHours PowerOnCount HostWrites HostReads
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /s /a-d Smart\*.ini') do (
    for %%k in ("%%~dpa.") do echo,%%~nk
    set PowerOnHours=通电时间:
    set PowerOnCount=通电次数:
    set HostWrites=主机写入量总计:
    set HostReads=主机读取量总计:
    for /f "tokens=1,2 delims==" %%i in ('findstr "%Names%" "%%a"') do (
        if defined %%i echo,!%%i!%%j
        set %%i=
    )
)
pause>nul

 代码二另一个版本:

@echo off
set Names=PowerOnHours PowerOnCount HostWrites HostReads
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /s /a-d Smart\*.ini') do (
    set "p=%%~dpa" & for %%i in ("!p:~0,-1!") do echo %%~nxi
    set PowerOnHours=通电时间:
    set PowerOnCount=通电次数:
    set HostWrites=主机写入量总计:
    set HostReads=主机读取量总计:
    for /f "tokens=1,2 delims==" %%i in ('findstr "%Names%" "%%a"') do (
        if defined %%i echo,!%%i!%%j
        set %%i=
    )
)
pause>nul

代码三:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=, " %%a in ('dir/a/s/b .\Smart\*.ini') do (
    set "p=%%~dpa" & for %%i in ("!p:~0,-1!") do echo %%~nxi
    for /f "tokens=2 delims=^=" %%b in ('type "%%a" ^|findstr "PowerOnHours=" ^|more +1') do (echo 通电时间:%%b)
    for /f "tokens=2 delims=^=" %%b in ('type "%%a" ^|find "PowerOnCount=" ^|more +1') do (echo 通电次数:%%b)
    for /f "tokens=2 delims=^=" %%b in ('type "%%a" ^|find "HostWrites=" ^|more +1') do (echo 主机写入量总计:%%b)
    for /f "tokens=2 delims=^=" %%b in ('type "%%a" ^|find "HostReads=" ^|more +1') do (echo 主机读取量总计:%%b)

)
pause>nul

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值