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

回复 15# Batcher
结果正确!
如果不带汉字,以便适应不同语言,可以吗?
谢谢!

TOP

回复 16# aries215
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set n=1
  4. for /f "tokens=1,3" %%i in ('fsutil volume diskfree c:') do (
  5.     if !n! equ 1 (
  6.         set "free=%%j"
  7.     ) else if !n! equ 2 (
  8.         set "total=%%j"
  9.     )
  10.     set /a n+=1
  11. )
  12. echo !free!
  13. echo !total!
  14. pause
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或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

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

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

回复 19# Batcher
我再好好看看

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

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

TOP

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

TOP

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

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

TOP

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

回复 24# aries215

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

TOP

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

TOP

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

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

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

回复 28# 523066680
隐藏太深~

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

返回列表