标题: [系统相关] [已解决]如何用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- @echo off
- setlocal enabledelayedexpansion
-
- echo 检查第0块硬盘
- call :CheckDisk 0
- echo 硬盘总空间(MB)!DiskSize!
- echo 已分配空间(MB)!PartitionSize!
- echo 未分配空间(MB)!UnallocatedSize!
-
- echo 检查第1块硬盘
- call :CheckDisk 1
- echo 硬盘总空间(MB)!DiskSize!
- echo 已分配空间(MB)!PartitionSize!
- echo 未分配空间(MB)!UnallocatedSize!
-
- pause
- goto :eof
-
- :CheckDisk
- set "DiskSize="
- for /f "tokens=2 delims==" %%i in ('wmic DiskDrive where "Index='%1'" get Size /value') do (
- for /f "delims=" %%j in ("%%i") do (
- set "DiskSize=%%j"
- )
- )
- set "DiskSize=%DiskSize:~0,-6%"
- set "PartitionSize="
- for /f "tokens=2 delims==" %%i in ('wmic Partition where "DeviceID like 'Disk #%1%%'" get Size /value') do (
- for /f "delims=" %%j in ("%%i") do (
- set "ThisPartition=%%j"
- set /a "PartitionSize+=!ThisPartition:~0,-6!"
- )
- )
- set /a UnallocatedSize=DiskSize-PartitionSize
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |