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

[数值计算] [已解决]批处理怎样用 fsutil/wmic 计算系统盘已用空间?

本帖最后由 aries215 于 2019-1-8 05:43 编辑

我自己找到更可靠的方法,准确,兼容:
http://www.bathome.net/thread-51804-1-1.html
==================================
  1. fsutil volume diskfree c:
复制代码
剩余空间和总空间怎么分别获取?

先前请教了wmic的取值方法,现在想改用简便的fsutil。
谢谢大家热心帮助!
1

评分人数

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

本帖最后由 aries215 于 2019-1-10 07:21 编辑

回复 30# Batcher
我找到了Diskpart的方法,请看6楼回帖:
http://bbs.bathome.net/thread-51804-1-1.html
http://www.bathome.net/thread-51804-1-1.html

TOP

回复 27# aries215


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

TOP

回复 28# 523066680
隐藏太深~

TOP

本帖最后由 523066680 于 2019-1-7 21:29 编辑

回复 26# aries215

不懂批处理,按零请高明



我发现我把total 和 free写反了,win7测试勉强OK,不知道有没有其他BUG
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. :: 常量初始化
  4. set const=9876543210
  5. :get_free_size
  6. for /f "tokens=3" %%i in ('fsutil volume diskfree c:') do (set free=%%i&goto :get_total_size)
  7. :get_total_size
  8. for /f "tokens=3" %%i in ('fsutil volume diskfree c: ^|more +1') do (set total=%%i&goto :count)
  9. :count
  10. set /a Afoo=%total:~0,-5%, Abar=%total:~-5%
  11. set /a Bfoo=%free:~0,-5%, Bbar=%free:~-5%
  12. echo %Afoo% %Abar% %Bfoo% %Bbar%
  13. set /a foo=Afoo-Bfoo, bar=Abar-Bbar
  14. if %bar% leq 0 set /a foo-=1, bar=100000-(-bar)
  15. echo,
  16. echo %total% %free% 已用空间 %foo%%bar%
  17. exit /b
复制代码

TOP

本帖最后由 aries215 于 2019-1-7 21:12 编辑

回复 17# Batcher
请问,为何有些10PE里,两者相减会提示“找不到操作数”:
  1. set /a "SystemSize=!total:~0,-6!-!free:~0,-6!"
复制代码
搜索过“大数”,太复杂了。
请问有无稍微简练的(纯批处理)计算方式?

TOP

回复 25# 523066680
1024谁都知道,但1048更接近实际看到的GB数值。
13楼的 :get_free_size 不存在?!

TOP

本帖最后由 523066680 于 2019-1-7 21:00 编辑

回复 24# aries215

    是可以简化处理的,但是我很懒,在win7运行挺正常的。
为什么是1048不是1024

TOP

回复 13# 523066680
谢谢你热心帮助!
你第二组代码,运行的结果是:
命令行参数过多。
命令语法不正确。
241289846784  已用空间

能否两次除以1048再得出结果?

TOP

回复 1# aries215
顶起!路过的大侠帮帮忙吧,谢谢!

TOP

回复 21# 523066680
谢谢!想找更简单通用的方式呢。

TOP

本帖最后由 523066680 于 2019-1-6 09:24 编辑

回复 20# aries215

    不是还要做减法吗,13楼第二段代码做了减法

Stackoverflow有一个很好的方案,结果也很直观
https://stackoverflow.com/questi ... ote-windows-servers
  1. >diskfree.cmd %COMPUTERNAME% C:
  2. Total space: 137GB
  3. Free space: 44GB
  4. Used space: 93GB
  5. Percent Used: 67%
  6. Percent Free: 33%
复制代码

TOP

本帖最后由 aries215 于 2019-1-5 22:42 编辑

回复 19# Batcher
我再好好看看

TOP

回复 18# aries215


    具体哪里不懂?for命令的语法可以参考:
http://bbs.bathome.net/thread-31727-1-1.html
http://bbs.bathome.net/thread-2189-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 17# Batcher
请问能讲解一下吗?谢谢!

TOP

返回列表