无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
查看: 2797|回复: 11

[求助] 批处理如何获取剩余空间最大的分区

[复制链接]
发表于 2020-9-5 22:22:29 | 显示全部楼层 |阅读模式

比如只有一块硬盘,5个分区,如何获取剩余空间最大的分区盘符
发表于 2020-9-6 10:46:13 来自手机 | 显示全部楼层
一种是fsutil,速度快,单位字节
一种是diskpart,速度慢,单位是大小而定
一种是wmic,PE一般没有这个组件。

点评

fsutil、diskpart、wmic三个组件pe中均有,也能获取各分区剩余空间,但自动获取剩余空间最大的分区盘符不会写  详情 回复 发表于 2020-9-6 12:19
回复

使用道具 举报

 楼主| 发表于 2020-9-6 12:19:04 | 显示全部楼层
nttwqz 发表于 2020-9-6 10:46
一种是fsutil,速度快,单位字节
一种是diskpart,速度慢,单位是大小而定
一种是wmic,PE一般没有这个组 ...

fsutil、diskpart、wmic三个组件pe中均有,也能获取各分区剩余空间,但自动获取剩余空间最大的分区盘符不会写
回复

使用道具 举报

发表于 2020-9-6 15:31:13 | 显示全部楼层
本帖最后由 9zhmke 于 2020-9-6 15:35 编辑

fsutil快就用fsutil吧:

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%i in ('fsutil fsinfo drives') do set drv=%%j
  4. set tmp=%drv:\=%
  5. set drv=%tmp: =%
  6. echo %drv%
  7. set free=0
  8. set max=C
  9. :LOOP
  10. for /f "tokens=1* delims=:" %%i in ("%drv%") do (
  11.         fsutil volume diskfree %%i:
  12.         for /f "tokens=2* delims=:" %%d in ('fsutil volume diskfree %%i:') do set last=%%d
  13.         set last=!last:~0,-6!
  14.         if !free! leq !last! echo ok& set max=%%i& set free=!last!
  15.         set drv=%%j)
  16. if defined drv goto LOOP
复制代码


不能上传bat,txt改为bat即可: test.txt (522 Bytes, 下载次数: 6)

点评

谢谢回复 在pe下常用imagex和dism,我要给它们设置临时文件夹,想在剩余空间最大的分区设置,所以需要一个获取剩余空间最大的分区盘符的代码 我的pe有vbs功能,你能否写一个vbs脚本来获取剩余空间最大的分区盘  详情 回复 发表于 2020-9-7 00:41
回复

使用道具 举报

 楼主| 发表于 2020-9-7 00:41:23 | 显示全部楼层
9zhmke 发表于 2020-9-6 15:31
fsutil快就用fsutil吧:

谢谢回复

在pe下常用imagex和dism,我要给它们设置临时文件夹,想在剩余空间最大的分区设置,所以需要一个获取剩余空间最大的分区盘符的代码

我的pe有vbs功能,你能否写一个vbs脚本来获取剩余空间最大的分区盘符

点评

这个应该可以用吧? 能用就不必另写一套了吧? 关于临时文件夹,我倒是认为可以从C开始查看,只要能有你需要的空间就可以了,不必把每个分区都看一遍.比如常见的装系统什么的,有个1个G左右怎么也就够用了.  详情 回复 发表于 2020-9-7 16:07
回复

使用道具 举报

发表于 2020-9-7 16:07:07 | 显示全部楼层
yjqd 发表于 2020-9-7 00:41
谢谢回复

在pe下常用imagex和dism,我要给它们设置临时文件夹,想在剩余空间最大的分区设置,所以需要 ...

这个应该可以用吧? 能用就不必另写一套了吧?
关于临时文件夹,我倒是认为可以从C开始查看,只要能有你需要的空间就可以了,不必把每个分区都看一遍.比如常见的装系统什么的,有个1个G左右怎么也就够用了.

点评

能用,准确,谢谢  详情 回复 发表于 2020-9-7 18:21
回复

使用道具 举报

 楼主| 发表于 2020-9-7 18:21:42 | 显示全部楼层
9zhmke 发表于 2020-9-7 16:07
这个应该可以用吧? 能用就不必另写一套了吧?
关于临时文件夹,我倒是认为可以从C开始查看,只要能有 ...

能用,准确,谢谢
回复

使用道具 举报

发表于 2020-9-22 15:05:02 | 显示全部楼层
一般来说都是fsutil最快!
回复

使用道具 举报

发表于 2020-9-23 20:37:57 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-9-23 20:59 编辑

这是用 wmic 实现的。win10 桌面环境下测试通过
捕获.PNG

get_free.7z (428 Bytes, 下载次数: 2)

点评

谢谢 pe下获取盘符速度还是很快的且准确  详情 回复 发表于 2020-9-28 15:55
回复

使用道具 举报

 楼主| 发表于 2020-9-28 15:55:53 | 显示全部楼层
dos时代菜鸟 发表于 2020-9-23 20:37
这是用 wmic 实现的。win10 桌面环境下测试通过

谢谢

pe下获取盘符速度还是很快的且准确
回复

使用道具 举报

发表于 2020-10-18 15:44:36 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion
  2. set "zero=00000000000000000000"
  3. set "maxfree=%zero%"
  4. for %%a in (C,D,E,F,G) do (
  5.     for /f "tokens=3" %%b in ('dir /a /-c %%a:\') do set "free=%zero%%%b"
  6.     if "!free:~-20!" gtr "!maxfree!" (
  7.         set "maxfree=!free:~-20!"
  8.         set "letter=%%a"
  9.     )
  10. )
  11. echo,%letter% %maxfree%
  12. pause
复制代码
回复

使用道具 举报

发表于 2020-10-18 16:54:30 | 显示全部楼层
收藏一下
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2020-11-26 15:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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