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

[数值计算] 【已解决】求修改bat(增加C盘使用率),谢谢

本帖最后由 yyz219 于 2023-8-21 19:34 编辑

完美解决了:
  1. @echo off
  2. ::【查C:盘空间】
  3. cd /d D:\1绿色软件\关闭显示器\
  4. :A
  5. for /f "tokens=1,2,3,4 delims= " %%a in ('"pecmd.exe team find C:\=?,a^| ifex C:\=?,b^| calc c=(%%a%%) / 1g # 1^| calc d=(%%a%% - %%b%%) / 1g # 2^| calc e=(%%b%%) / 1g # 1^| calc f=(%%a%% - %%b%%) / %%a%% * 100 # 0^| writ -,$+0,%%c%% %%d%% %%e%% %%f%%"') do ( set "总空间=%%a" && set "已用空间=%%b" && set "剩余空间=%%c" && set "使用率=%%d" )
  6. ::【(# 0——使用率保留0位小数)(# 1——总空间和剩余空间保留1位小数)(# 2——已用空间保留2位小数)】
  7. @echo.
  8. @echo.
  9. @echo.
  10. @echo.
  11. @echo.   
  12. @echo                               C盘 %已用空间%   参考 5.85
  13. @echo.
  14. @echo.
  15. @echo.
  16. @echo.
  17. echo        分区            总的            剩余            已用           用率
  18. echo.
  19. echo        C 盘            %总空间%            %剩余空间%            %已用空间%           %使用率% %%
  20. echo.       -------------------------------------------------------------------
  21. pause>nul 2>nul
  22. ::【删除“ie临时文件”】
  23. Del /f /s /q  "C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\*.*"
  24. Del /f /s /q  "D:\桌面\Temporary Internet Files\*.*"
  25. ::【启动:DiskCleaner2.0.exe】
  26. "%~dp0Disk Cleaner 2.0.exe"
  27. cls
  28. goto :A
  29. exit
复制代码
******************************************************************

********************************************************************
方法2:查看C盘已用空间.wcs
  1. find C:\=?,a    //查C:盘总空间
  2. ifex C:\=?,b    //查C:盘剩余空间
  3. calc c=(%a% - %b%) / 1g # 2  //以G为单位,保留两位小数
  4. mess. C盘已用空间:%c% GB
复制代码

********************************************************************
原来的问题:
已有 “查看C盘.bat”(PE下使用)
  1. @echo off
  2. for /f "tokens=1,2,3 delims= " %%a in ('"pecmd.exe team find C:\=?,a^| ifex C:\=?,b^| calc c=(%%a%%) / 1g # 2^| calc d=(%%a%% - %%b%%) / 1g # 2^| calc e=(%%b%%) / 1g # 2^| writ -,$+0,%%c%% %%d%% %%e%%"') do ( set "总空间=%%a" && set "已用空间=%%b" && set "剩余空间=%%c" )echo         C盘          %总空间%          %剩余空间%           %已用空间%  %使用率%
  3. echo        磁盘        总空间        剩余空间        已用空间          使用率
  4. echo.      ---------------------------------------------------------------------
  5. pause>nul 2>nul
复制代码
***********************************************************************************
希望增加C盘使用率,即:已用空间/总空间*100(不要小数)

1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
我是小白,希望老师多多帮助

本帖最后由 77七 于 2023-8-21 00:33 编辑
  1. @echo off
  2. for /f "tokens=1-4 delims= " %%a in ('"pecmd.exe team find C:\=?,a^| ifex C:\=?,b^| calc c=(%%a%%) / 1g # 2^| calc d=(%%a%% - %%b%%) / 1g # 2^| calc e=(%%b%%) / 1g # 2^| calc f=(%%a%% - %%b%%) / (%%a%%) * 100 / 1g # 2^| writ -,$+0,%%c%% %%d%% %%e%% %%f%%"') do (
  3. set "总空间=%%a"
  4. set "已用空间=%%b"
  5. set "剩余空间=%%c"
  6. set "使用率=%%d"
  7. )
  8. echo         C盘          %总空间%          %剩余空间%           %已用空间%  %使用率%
  9. echo        磁盘        总空间        剩余空间        已用空间          使用率
  10. echo.      ---------------------------------------------------------------------
  11. pause>nul
  12. exit
复制代码

这样行吗
1

评分人数

    • yyz219: 数值不对 谢谢技术 + 1
bat小白,请多指教!谢谢!

TOP

这样行吗
77七 发表于 2023-8-20 23:13



    数值不对 谢谢
我是小白,希望老师多多帮助

TOP

回复 3# yyz219


   是什么样的数值?已经修改2楼,再试试呢。
bat小白,请多指教!谢谢!

TOP

回复  yyz219


   是什么样的数值?已经修改2楼,再试试呢。
77七 发表于 2023-8-21 00:32


        C盘          20.11          14.38           5.74  2.66E-08
       磁盘        总空间        剩余空间        已用空间          使用率
      ---------------------------------------------------------------------

应该是:5.74/20.11*100=28
我是小白,希望老师多多帮助

TOP

本帖最后由 77七 于 2023-8-21 08:47 编辑

回复 5# yyz219


   
嗯,数学不太好,g单位已经被消掉了,但是不知道为什么 2^| 需要变成 0^|    。。去掉 2楼的添加部分的  / 1g 结果会对吗?百度了一下,好像是按异或运算,没接触过。
bat小白,请多指教!谢谢!

TOP

回复 6# 77七

在别的论坛解决了,谢谢
我是小白,希望老师多多帮助

TOP

回复 6# 77七


    #是表达式后缀,2意思是保留两位小数,^|就是转移和管道,不是异或。
1

评分人数

    • 77七: 感谢分享技术 + 1

TOP

本帖最后由 buyiyang 于 2023-8-21 11:54 编辑

加一个可以右对齐的功能
  1. @echo off
  2. for /f "tokens=1-4" %%a in ('"pecmd.exe team find C:\=?,a^|ifex C:\=?,b^|calc c=%%a%%/1g#2F^|calc d=(%%a%%-%%b%%)/1g#2F^|calc e=%%b%%/1g#2F^|calc f=(%%a%%-%%b%%)*100/%%a%%#0F^|writ -,$+0,%%c%% %%d%% %%e%% %%f%%"') do set "总空间=%%a"&set "已用空间=%%b"&set "剩余空间=%%c"&set "使用率=%%d"
  3. set "space=          "
  4. set "a=%总空间%gfedcba9876543210"
  5. set /a n=0x%a:~16,1%,m=16-n
  6. for /l %%i in (1,1,%m%) do call set "space1=%%space1%% "
  7. set "a=%剩余空间%gfedcba9876543210"
  8. set /a n=0x%a:~16,1%,m=18-n
  9. for /l %%i in (1,1,%m%) do call set "space2=%%space2%% "
  10. set "a=%已用空间%gfedcba9876543210"
  11. set /a n=0x%a:~16,1%,m=18-n
  12. for /l %%i in (1,1,%m%) do call set "space3=%%space3%% "
  13. echo,%space% C盘%space%%总空间%%space1%%剩余空间%%space2%%已用空间%%space3%%使用率%%%
  14. echo,%space%磁盘%space%总空间%space%剩余空间%space%已用空间%space%使用率
  15. echo,      ----------------------------------------------------------------------------------
  16. pause>nul
复制代码

TOP

学习了,有提高

TOP

回复 8# buyiyang


   
谢谢大佬指点!学习了!
bat小白,请多指教!谢谢!

TOP

加一个可以右对齐的功能
buyiyang 发表于 2023-8-21 11:52



    谢谢
我是小白,希望老师多多帮助

TOP

返回列表