![](/img/trans.png)
[英]Windows Batch: Set variables for FOR loop, WMIC diskdrive get size
[英]windows batch wmic diskdrive get size where media type = Fixed hard disk media
我需要通过Windows批处理文件获取本地安装的硬盘的大小。请帮助
for /f ? %%f in ('wmic diskdrive where (MediaType='Fixed hard disk media') get size /value') do echo "%%f"
您可能想要这样的东西:
@Echo Off
For /F "Skip=1 Delims=" %%A In (
'"WMIC LogicalDisk Where (DriveType='3') Get DeviceID, Size"'
) Do For /F "Tokens=1-2" %%B In ("%%A") Do Echo(%%B - %%C
Timeout -1
由于LogicalDisk仅返回分区大小,而对于现代驱动器,容量将超过cmd.exe的set / A命令的32位带符号整数数学运算,因此我建议使用PowerShell脚本来获取一些数据:
$Drives=0 ; $TotalSize=0
get-physicaldisk |
ForEach {$_;$Drives+=1;$TotalSize+=$_.Size}|
Format-Table -auto DeviceID,Size,BusType,MediaType,model,serialnumber
"Drives TotalSize"
"------- --------------"
"{0,-6} {1,15}" -f $Drives,$TotalSize
样本输出:
> .\SO_42525626.ps1
DeviceID Size BusType MediaType model serialnumber
-------- ---- ------- --------- ----- ------------
1 256060514304 SATA SSD Samsung SSD 840 PRO Series xxxxxxxxxxxxxxx
0 2000398934016 SATA HDD ST2000DL003-9VT166 yyyyyyyy
3 1000204886016 USB Unspecified 2105 zzzzzzzzzzzzzzzzzzzz
Drives TotalSize
------- --------------
3 3256664334336
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.