[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

只知道用
wmic volume get deviceid,driveletter,label
这命令大致上判断
具体的就不知道了

TOP

回复 2# Five66


   执行命令后没有显示未分配空间的信息

TOP

回复 2# Five66


    未分配的空间不包含在任何Partition/Volume里面
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 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

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


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

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

TOP

是这个样子的

TOP

回复 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,但是命令结果里面看不到未分配空间。

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 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,但是命令结果里面看不到未分配空间。

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher

额,那不就说明你硬盘没有未分配的空间,不过呢,都说了不准确了,也不一定真的对

TOP

回复 10# Five66


    不是。我的Disk #0已经全部分配了,但是Disk #1还有大约30GB没有分配。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

回复 9# Batcher

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

TOP

回复 10# Five66


    真的没有, 我也试了, 没有你截图那个分区

TOP

回复 13# 小白龙


    啊,这,搞不懂了?也不知道为啥我的会显示

TOP

回复 5# Batcher


  大佬, 如果加点难度

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

最后结果回显
0:3  0:7  
说明磁盘0的第三个分区, 和第7个分区是未分配空间

TOP

返回列表