问题描述
我需要创建一个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
[...]
最诚挚的问候。
解决方法
作为使用powershell的替代方法,您也可以尝试通过wmic。
打开命令提示符窗口,粘贴以下行,然后按 ENTER
,Units.Units,DATEDIFF(week,StartofSales.[Start of Sales/Letting Revised],EndofSales.[End of Sales/Letting Revised])[Weeks Period],Units.Units/case when DATEDIFF(week,EndofSales.[End of Sales/Letting Revised])= 0 then 1 else DATEDIFF(week,EndofSales.[End of Sales/Letting Revised]) end as[Units/week]
这将访问与PowerShell 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
相同的信息。它首先检查Get-PhysicalDisk
属性。该属性返回了三个可能的值,MediaType
(未指定); 0
(HDD);和3
(SSD)。为了提高安全性,我检查主轴速度为4
,因为SSD中没有活动部件,并返回通过两次检查的任何型号名称。
在cmd中,您可以键入以下命令,该命令将调用PowerShell并传递该命令,如果磁盘属于该类型,则该命令将返回“ SSD”:
powershell.exe "(get-physicaldisk).MediaType"
按照phuclv的建议,在批处理文件中使用此命令的返回值的最简单方法是:
powershell.exe "exit ((get-physicaldisk).MediaType) -ne 'SSD'" && echo SSD
存在SSD时的声明说明:
-
((get-physicaldisk).MediaType)
-评估为“ SSD” -
'SSD' -ne SSD'
-计算结果为False(-ne不等于运算符) -
exit
带有逻辑假(假)-使PowerShell退出而不将CMD的%ERRORLEVEL%设置为非零 -
&&
-是CMD运算符,当第一个命令成功执行时(%ERRORLEVEL%为零)执行第二个命令