找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 90|回复: 3

[分享] 迅速查看当前内置和外接磁盘全部分区的剩余空间

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式
获取磁盘剩余空间的方法有多种,以下的批处代码选用 win 和主流 pe 系统均自带的 fsutil.exe
备注:win11 高版本(25H2)已彻底移除了 wmic 命令行功能

  1. @echo off &if "%~1"=="" "%~f0" 1|sort /r &pause&exit/b
  2. setlocal enabledelayedexpansion &set "z=" &for /l %%n in (1,1,16) do set "b= !b!"
  3. for /f "delims=" %%D in ('fsutil fsinfo drives') do set "allD=%%D"
  4. for %%d in (%allD:* =%) do (set "z="
  5.    for /f "tokens=2 delims=:(" %%z in ('fsutil volume diskfree %%d') do if not defined z (
  6.      set "z=%%z" &set "z=!z: =!" &set "z=!z:,=!"
  7.      if "!z:~,1!" geq "1" if "!z:~,1!" leq "9" (set "z=!b!!z!" &set "z=!z:~-16!" &echo,!z!字节 %%d)) )
  8. exit/b
复制代码






发表于 1 小时前 | 显示全部楼层
本帖最后由 a66 于 2026-4-22 15:09 编辑

    自动遍历电脑所有磁盘(C: D: E:…)
    过滤光驱、空盘符、无介质驱动器
    输出纯数字剩余字节数
    数字自动右对齐,排版整齐
    按剩余空间从大到小排序输出


  1. @echo off
  2. :: 顶层注释用 :: 没问题(非循环体)
  3. :: 无参数时脚本自调用,通过管道排序后输出,实现磁盘从大到小排列
  4. if "%~1"=="" "%~f0" 1|sort /r &pause&exit/b

  5. :: 启用延迟环境变量扩展,循环中修改变量必须开启
  6. setlocal enabledelayedexpansion
  7. :: 清空变量 z,定义变量 b 为 16 个空格(用于数字右对齐)
  8. set "z=" &for /l %%n in (1,1,16) do set "b= !b!"

  9. :: 获取系统所有磁盘盘符列表
  10. for /f "delims=" %%D in ('fsutil fsinfo drives') do set "allD=%%D"

  11. :: 遍历所有磁盘盘符
  12. for %%d in (%allD:* =%) do (
  13.     set "z="
  14.     rem 嵌套循环:用 fsutil 查询当前磁盘剩余空间,提取关键数值
  15.     for /f "tokens=2 delims=:(" %%z in ('fsutil volume diskfree %%d') do if not defined z (
  16.         rem 给变量 z 赋值剩余空间原始数据
  17.         set "z=%%z"
  18.         rem 去除数值中的所有空格
  19.         set "z=!z: =!"
  20.         rem 去除数值中的千分位逗号
  21.         set "z=!z:,=!"

  22.         rem 判断是否为有效数字(过滤光驱、空盘符、无介质驱动器)
  23.         if "!z:~,1!" geq "1" if "!z:~,1!" leq "9" (
  24.             rem 前面补 16 个空格,实现右对齐效果
  25.             set "z=!b!!z!"
  26.             rem 截取最后 16 个字符,格式化输出
  27.             set "z=!z:~-16!"
  28.             rem 输出格式化后的字节数 + 盘符
  29.             echo,!z!字节 %%d
  30.         )
  31.     )
  32. )
  33. :: 退出批处理
  34. exit/b
复制代码

点评

阁下再用 ai 解读俺的代码但按照批处语法规范,循环体内的注释行要用 rem 开头,以免运行出现怪错...  详情 回复 发表于 1 小时前
回复

使用道具 举报

 楼主| 发表于 1 小时前 | 显示全部楼层
a66 发表于 2026-4-22 14:18
自动遍历电脑所有磁盘(C: D: E:…)
    过滤光驱、空盘符、无介质驱动器
    输出纯数字剩余字节数

阁下再用 ai 解读俺的代码但按照批处语法规范,循环体内的注释行要用 rem 开头,以免运行出现怪错...
回复

使用道具 举报

发表于 半小时前 | 显示全部楼层
不错的方案 学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-22 15:52

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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