Board logo

标题: [系统相关] [已解决]如何用wmic命令判断C盘所在的磁盘是否存在未分配空间 [打印本页]

作者: 小白龙    时间: 2023-8-29 23:15     标题: [已解决]如何用wmic命令判断C盘所在的磁盘是否存在未分配空间

本帖最后由 小白龙 于 2023-8-30 20:18 编辑

wmic命令确实太强大了, 有时一行代码就能搞定很复杂的问题,

我现在想使用wmic命令判断C盘所在的磁盘是否存在未分配的空间, 如下图箭头所指

作者: Five66    时间: 2023-8-30 16:30

只知道用
wmic volume get deviceid,driveletter,label
这命令大致上判断
具体的就不知道了
作者: 小白龙    时间: 2023-8-30 17:23

回复 2# Five66


   执行命令后没有显示未分配空间的信息
作者: Batcher    时间: 2023-8-30 18:41

回复 2# Five66


    未分配的空间不包含在任何Partition/Volume里面
作者: Batcher    时间: 2023-8-30 18:42

回复 1# 小白龙


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 检查第0块硬盘
  4. call :CheckDisk 0
  5. echo 硬盘总空间(MB)!DiskSize!
  6. echo 已分配空间(MB)!PartitionSize!
  7. echo 未分配空间(MB)!UnallocatedSize!
  8. echo 检查第1块硬盘
  9. call :CheckDisk 1
  10. echo 硬盘总空间(MB)!DiskSize!
  11. echo 已分配空间(MB)!PartitionSize!
  12. echo 未分配空间(MB)!UnallocatedSize!
  13. pause
  14. goto :eof
  15. :CheckDisk
  16. set "DiskSize="
  17. for /f "tokens=2 delims==" %%i in ('wmic DiskDrive where "Index='%1'" get Size /value') do (
  18.     for /f "delims=" %%j in ("%%i") do (
  19.         set "DiskSize=%%j"
  20.     )
  21. )
  22. set "DiskSize=%DiskSize:~0,-6%"
  23. set "PartitionSize="
  24. for /f "tokens=2 delims==" %%i in ('wmic Partition where "DeviceID like 'Disk #%1%%'" get Size /value') do (
  25.     for /f "delims=" %%j in ("%%i") do (
  26.         set "ThisPartition=%%j"
  27.         set /a "PartitionSize+=!ThisPartition:~0,-6!"
  28.     )
  29. )
  30. set /a UnallocatedSize=DiskSize-PartitionSize
  31. goto :eof
复制代码

作者: Five66    时间: 2023-8-30 19:19

回复 4# Batcher


    大概判断一下应该行吧
执行
wmic volume get deviceid,driveletter,label

输出没有driveletter,并且label值是REGFDATA,那个就是未分配空间(只能大概判断一下,并不一定准确)
是不是跟C盘同一个硬盘,通过deviceid的值是否相同来判断
作者: Five66    时间: 2023-8-30 19:36

是这个样子的

作者: Batcher    时间: 2023-8-30 19:42

回复 7# Five66


完全没有:
C:\Users\Administrator>wmic volume get deviceid,driveletter,label
DeviceID                                           DriveLetter  Label
\\?\Volume{53087743-f732-11e9-97f1-806e6f6e6963}\               系统保留
\\?\Volume{9485f4e7-fd0d-11ed-bb91-0800278dd085}\  E:           新加卷
\\?\Volume{53087744-f732-11e9-97f1-806e6f6e6963}\  C:
\\?\Volume{9485f4f0-fd0d-11ed-bb91-0800278dd085}\  F:           新加卷

我这个Disk #1上面有E盘、F盘、未分配空间大约30GB,但是命令结果里面看不到未分配空间。


作者: Batcher    时间: 2023-8-30 19:46

回复 8# yakeyun


不一定:
C:\Users\Administrator>wmic partition GET Caption,Description,Size,StartingOffset
Caption                Description              Size         StartingOffset
Disk #0, Partition #0  Installable File System  104857600    1048576
Disk #0, Partition #1  Installable File System  34252783616  105906176
Disk #1, Partition #0  Installable File System  1073741824   1048576
Disk #1, Partition #1  Installable File System  536870912    1074790400

我这个Disk #1上面有E盘、F盘、未分配空间大约30GB,但是命令结果里面看不到未分配空间。


作者: Five66    时间: 2023-8-30 19:46

回复 9# Batcher

额,那不就说明你硬盘没有未分配的空间,不过呢,都说了不准确了,也不一定真的对
作者: Batcher    时间: 2023-8-30 19:48

回复 10# Five66


    不是。我的Disk #0已经全部分配了,但是Disk #1还有大约30GB没有分配。
作者: Five66    时间: 2023-8-30 19:51

本帖最后由 Five66 于 2023-8-30 20:13 编辑

回复 9# Batcher

额,已编辑
研究了一下,大概是"可用空间"跟"未分配空间"之间的差异,
"可用空间"确实不显示,但"未分配空间"会显示的(至少我这边会显示)

作者: 小白龙    时间: 2023-8-30 20:12

回复 10# Five66


    真的没有, 我也试了, 没有你截图那个分区
作者: Five66    时间: 2023-8-30 20:17

回复 13# 小白龙


    啊,这,搞不懂了?也不知道为啥我的会显示
作者: 小白龙    时间: 2023-8-30 20:20

回复 5# Batcher


  大佬, 如果加点难度

我现在磁盘里有两个未分配分区, 在不同的位置, 能不能显示它俩的硬盘号和分区号? 分区号就是前后顺序号

最后结果回显
0:3  0:7  
说明磁盘0的第三个分区, 和第7个分区是未分配空间
作者: 小白龙    时间: 2023-8-30 20:22

回复 14# Five66


    你的即然是未分配的分区, 怎么可能有卷标?
作者: Five66    时间: 2023-8-30 20:26

回复 16# 小白龙


    说不定是系统默认的卷标??????
作者: Batcher    时间: 2023-8-30 21:10

回复 15# 小白龙


    请在【磁盘管理】图形界面截个完整的图,我理解一下。
作者: 小白龙    时间: 2023-8-30 21:12

回复 18# Batcher


   
作者: 小白龙    时间: 2023-8-30 21:14

回复 17# Five66


    你的分区表是MBR的, 我的是GPT的
MBR有扩展分区之说, GPT全是主分区
作者: Five66    时间: 2023-8-30 21:28

回复 20# 小白龙


    其实我那未分配空间不是纯天然的,是通过压缩卷得到的,注册表位置
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
会有这个"通过压缩卷得到的未分配空间"的信息,换个系统登陆后,再用wimc查询就查不出来了
作者: 小白龙    时间: 2023-8-30 22:35

回复 21# Five66


    真是奇怪




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