找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 59727|回复: 21

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

[复制链接]
发表于 2023-8-29 23:15:16 | 显示全部楼层 |阅读模式
本帖最后由 小白龙 于 2023-8-30 20:18 编辑

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

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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-8-30 16:30:19 | 显示全部楼层
只知道用
wmic volume get deviceid,driveletter,label
这命令大致上判断
具体的就不知道了
 楼主| 发表于 2023-8-30 17:23:49 | 显示全部楼层
回复 2# Five66


   执行命令后没有显示未分配空间的信息
发表于 2023-8-30 18:41:42 | 显示全部楼层
回复 2# Five66


    未分配的空间不包含在任何Partition/Volume里面
发表于 2023-8-30 18:42:22 | 显示全部楼层
回复 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
复制代码

评分

参与人数 1技术 +1 收起 理由
小白龙 + 1 乐于助人

查看全部评分

发表于 2023-8-30 19:19:57 | 显示全部楼层
回复 4# Batcher


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

输出没有driveletter,并且label值是REGFDATA,那个就是未分配空间(只能大概判断一下,并不一定准确)
是不是跟C盘同一个硬盘,通过deviceid的值是否相同来判断
发表于 2023-8-30 19:36:55 | 显示全部楼层
是这个样子的
发表于 2023-8-30 19:42:14 | 显示全部楼层
回复 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,但是命令结果里面看不到未分配空间。

发表于 2023-8-30 19:46:06 | 显示全部楼层
回复 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,但是命令结果里面看不到未分配空间。

发表于 2023-8-30 19:46:30 | 显示全部楼层
回复 9# Batcher

额,那不就说明你硬盘没有未分配的空间,不过呢,都说了不准确了,也不一定真的对
发表于 2023-8-30 19:48:15 | 显示全部楼层
回复 10# Five66


    不是。我的Disk #0已经全部分配了,但是Disk #1还有大约30GB没有分配。
发表于 2023-8-30 19:51:45 | 显示全部楼层
本帖最后由 Five66 于 2023-8-30 20:13 编辑

回复 9# Batcher

额,已编辑
研究了一下,大概是"可用空间"跟"未分配空间"之间的差异,
"可用空间"确实不显示,但"未分配空间"会显示的(至少我这边会显示)
 楼主| 发表于 2023-8-30 20:12:38 | 显示全部楼层
回复 10# Five66


    真的没有, 我也试了, 没有你截图那个分区
发表于 2023-8-30 20:17:58 | 显示全部楼层
回复 13# 小白龙


    啊,这,搞不懂了?也不知道为啥我的会显示
 楼主| 发表于 2023-8-30 20:20:56 | 显示全部楼层
回复 5# Batcher


  大佬, 如果加点难度

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

最后结果回显
0:3  0:7  
说明磁盘0的第三个分区, 和第7个分区是未分配空间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:20 , Processed in 0.023927 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表