我如何知道磁盘是否为 SSD?
How I can know if the disk is a SSD?
我需要创建一个 T 卷,T 已创建,但如果磁盘是 ssd,我还需要一个新的 U 卷,我该怎么做?
判断我是不是 SSD 的批处理命令是什么?
[...]
set /a VOL_SIZE= %MINSIZE_MB% /2
set VOL_TYPE=simple
if %NDISK% GTR 1 set VOL_TYPE=stripe
echo create volume %VOL_TYPE% size=%VOL_SIZE% disk=%DISKLIST% >>%CMD_FILE%
echo Format fs=NTFS quick >>%CMD_FILE%
echo assign letter=T >>%CMD_FILE%
::if I'm not a SSD goto :noSSD
echo create volume %VOL_TYPE% disk=%DISKLIST% >>%CMD_FILE%
echo Format fs=NTFS quick >>%CMD_FILE%
echo assign letter=U >>%CMD_FILE%
:noSSD
[...]
此致。
在 cmd 中,您可以键入以下命令来调用 PowerShell 并向其传递命令,如果磁盘属于该类型,该命令将 return “SSD”:
powershell.exe "(get-physicaldisk).MediaType"
根据 phuclv 的建议,在批处理文件中使用此命令的 return 值的最简单方法是:
powershell.exe "exit ((get-physicaldisk).MediaType) -ne 'SSD'" && echo SSD
语句解释,有SSD时:
((get-physicaldisk).MediaType)
- 计算结果为 'SSD'
'SSD' -ne SSD'
- 计算结果为 False(-ne 是 not-equal 运算符)
exit
with logical false (False) - 使 PowerShell 退出而不将 CMD 的 %ERRORLEVEL% 设置为 non-zero
&&
- 是在第一个命令成功时执行第二个命令的 CMD 运算符(当 %ERRORLEVEL% 为零时)
作为使用 powershell, you could also try via wmic 的替代方法。
打开命令提示符 window,粘贴以下行,然后按 ENTER
For /F Tokens^=6Delims^=^" %G In ('^""%SystemRoot%\System32\wbem\WMIC.exe" /NameSpace:\root\Microsoft\Windows\Storage Path MSFT_PhysicalDisk Where "MediaType='4' And SpindleSpeed='0'" Get Model /Format:MOF 2^>NUL^"')Do @Echo %G is an SSD
这会访问与 PowerShell 的 Get-PhysicalDisk
相同的信息。它首先检查 MediaType
属性。 属性、0
(未指定) 有三个可能的值 return; 3
(硬盘);和 4
(SSD)。为了额外的安全,我检查主轴速度为 0
,因为 SSD 中没有移动部件,并且 return 任何通过两项检查的型号名称。
我需要创建一个 T 卷,T 已创建,但如果磁盘是 ssd,我还需要一个新的 U 卷,我该怎么做? 判断我是不是 SSD 的批处理命令是什么?
[...]
set /a VOL_SIZE= %MINSIZE_MB% /2
set VOL_TYPE=simple
if %NDISK% GTR 1 set VOL_TYPE=stripe
echo create volume %VOL_TYPE% size=%VOL_SIZE% disk=%DISKLIST% >>%CMD_FILE%
echo Format fs=NTFS quick >>%CMD_FILE%
echo assign letter=T >>%CMD_FILE%
::if I'm not a SSD goto :noSSD
echo create volume %VOL_TYPE% disk=%DISKLIST% >>%CMD_FILE%
echo Format fs=NTFS quick >>%CMD_FILE%
echo assign letter=U >>%CMD_FILE%
:noSSD
[...]
此致。
在 cmd 中,您可以键入以下命令来调用 PowerShell 并向其传递命令,如果磁盘属于该类型,该命令将 return “SSD”:
powershell.exe "(get-physicaldisk).MediaType"
根据 phuclv 的建议,在批处理文件中使用此命令的 return 值的最简单方法是:
powershell.exe "exit ((get-physicaldisk).MediaType) -ne 'SSD'" && echo SSD
语句解释,有SSD时:
((get-physicaldisk).MediaType)
- 计算结果为 'SSD''SSD' -ne SSD'
- 计算结果为 False(-ne 是 not-equal 运算符)exit
with logical false (False) - 使 PowerShell 退出而不将 CMD 的 %ERRORLEVEL% 设置为 non-zero&&
- 是在第一个命令成功时执行第二个命令的 CMD 运算符(当 %ERRORLEVEL% 为零时)
作为使用 powershell, you could also try via wmic 的替代方法。
打开命令提示符 window,粘贴以下行,然后按 ENTER
For /F Tokens^=6Delims^=^" %G In ('^""%SystemRoot%\System32\wbem\WMIC.exe" /NameSpace:\root\Microsoft\Windows\Storage Path MSFT_PhysicalDisk Where "MediaType='4' And SpindleSpeed='0'" Get Model /Format:MOF 2^>NUL^"')Do @Echo %G is an SSD
这会访问与 PowerShell 的 Get-PhysicalDisk
相同的信息。它首先检查 MediaType
属性。 属性、0
(未指定) 有三个可能的值 return; 3
(硬盘);和 4
(SSD)。为了额外的安全,我检查主轴速度为 0
,因为 SSD 中没有移动部件,并且 return 任何通过两项检查的型号名称。