Board logo

标题: [技术讨论] VBS如何判断C盘是否是SSD? [打印本页]

作者: 9zhmke    时间: 2015-9-20 21:03     标题: VBS如何判断C盘是否是SSD?

查了好多地方都没找到可以判断C盘是否是SSD的方法。
如果实在找不到办法的话,是否可以采用禁止缓存后存取文件测试速度来粗略估计?
作者: czjt1234    时间: 2015-10-10 11:45

intel ssd的硬盘型号
都是带有
intel ssd
字样的

其它牌子的不清楚
作者: 9zhmke    时间: 2015-10-16 00:15

回复 2# czjt1234


    如果有通用的办法就好了
作者: 依山居    时间: 2015-10-22 19:55

回复 3# 9zhmke


    搜索了一下,好多老外也在问同样问题。

http://stackoverflow.com/questio ... if-a-drive-is-a-ssd
作者: 依山居    时间: 2015-10-22 20:16

我用HDTunePro看了一下。有一项信息是硬盘转速。SSD转速为0,如果能读到这个信息。不为0。那应该可以解释问题了了。
作者: 依山居    时间: 2015-10-22 20:29

本帖最后由 依山居 于 2015-10-22 20:40 编辑

找到一个命令工具smartctl
http://sourceforge.net/projects/smartmontools/?source=directory

c:\>smartctl -i sda
smartctl 6.4 2015-06-04 r4109 [x86_64-w64-mingw32-win7-sp1] (sf-6.4-1)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     HGST Travelstar 5K1000


User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 2.6, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Thu Oct 22 20:27:40 2015
SMART support is: Available - device has SMART capability.
SMART support is: Enabled


c:\>smartctl -i sdb
smartctl 6.4 2015-06-04 r4109 [x86_64-w64-mingw32-win7-sp1] (sf-6.4-1)
Copyright (C) 2002-15, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===

Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Device is:        In smartctl database [for details use: -P show]

SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Thu Oct 22 20:28:01 2015
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
作者: CrLf    时间: 2015-10-22 22:31

已上传 smartctl 到 batch-cn
作者: 依山居    时间: 2015-10-22 22:37

回复 7# CrLf


    说明加上可以读取硬盘S.M.A.R.T 信息,如硬盘转速等信息。更加清晰。
作者: CrLf    时间: 2015-10-22 23:02

回复 8# 依山居


    done
作者: 依山居    时间: 2015-10-23 05:33



睡起来再继续。
  1. >>> from pySMART import DeviceList
  2. >>> d=DeviceList()
  3. >>> d
  4. <DeviceList contents:
  5. <SATA device on /dev/sda mod:HGST HTS54133A9380 sn:JD1033CC1Z6PMH>
  6. <SATA device on /dev/sdb mod:KINGSTON SV300S37A120G sn:50026d38050>
  7. <SAT device on /dev/sdc mod:SanDisk SSD U100 16GB sn:0ba4e8360>
复制代码

作者: 依山居    时间: 2015-10-28 18:50

  1. @echo off
  2. ::批处理判断C盘是否是SSD.bat
  3. ::依赖开源工具smartmontool中的ssmartctl.exe
  4. ::http://sourceforge.net/projects/smartmontools/
  5. smartctl -i %systemdrive%|find "Solid State Device"&&echo 看来是SSD||echo - -不是SSD
  6. smartctl -a d: |find "Solid State Device"&&echo 看来是SSD||echo - -不是SSD
  7. smartctl -a e: |find "Solid State Device"&&echo 看来是SSD||echo - -不是SSD
  8. pause
复制代码

作者: 依山居    时间: 2015-10-28 18:52

  1. #python读取管道判断C盘是不是SSD
  2. import os
  3. txt=os.popen('smartctl -i e:').read()
  4. if 'Solid State Device' in txt:
  5.     print("是SSD\n")
  6. else:
  7.     print("也许大概不是SSD\n")
  8.    
  9. #少数情况下C盘不是系统盘,从系统系统变量从读取系统盘符可靠性会高一些。
  10. cmd='smartctl -i '
  11. sd=os.environ.get('SYSTEMDRIVE')
  12. print("当前系统盘符:",sd)
  13. cmd=cmd+sd
  14. print('即将要执行的命令:',cmd)
  15. txt=os.popen(cmd).read()
  16. if 'Solid State Device' in txt:
  17.     print("systemdrive:",sd,"固态硬盘")
复制代码

作者: 9zhmke    时间: 2015-11-2 17:25

VBS理论上可以有办法读到 smart 信息吧?
作者: 依山居    时间: 2015-11-9 20:51

回复 13# 9zhmke


    正好贴个资料备用 玩转WMI --- 用脚本获取硬盘传感器温度和SMART讯息
http://blog.csdn.net/u014183302/article/details/41289451
作者: 9zhmke    时间: 2015-11-15 14:52

回复 14# 依山居


    我查了smart的数据结构貌似没有转速这一项?
作者: 依山居    时间: 2015-11-15 16:02

回复 15# 9zhmke

应该是要有的。你再查查资料。具体我不懂的。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2