找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19622|回复: 11

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

[复制链接]
发表于 2023-8-20 21:43:47 | 显示全部楼层 |阅读模式
本帖最后由 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(不要小数)

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-8-20 23:13:41 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
yyz219 + 1 数值不对 谢谢

查看全部评分

 楼主| 发表于 2023-8-20 23:29:47 | 显示全部楼层
这样行吗
77七 发表于 2023-8-20 23:13



    数值不对 谢谢
发表于 2023-8-21 00:32:22 | 显示全部楼层
回复 3# yyz219


   是什么样的数值?已经修改2楼,再试试呢。
 楼主| 发表于 2023-8-21 07:35:59 | 显示全部楼层
回复  yyz219


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


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

应该是:5.74/20.11*100=28
发表于 2023-8-21 08:12:51 | 显示全部楼层
本帖最后由 77七 于 2023-8-21 08:47 编辑

回复 5# yyz219


   
嗯,数学不太好,g单位已经被消掉了,但是不知道为什么 2^| 需要变成 0^|    。。去掉 2楼的添加部分的  / 1g 结果会对吗?百度了一下,好像是按异或运算,没接触过。
 楼主| 发表于 2023-8-21 11:05:56 | 显示全部楼层
回复 6# 77七

在别的论坛解决了,谢谢
发表于 2023-8-21 11:51:04 | 显示全部楼层
回复 6# 77七


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

评分

参与人数 1技术 +1 收起 理由
77七 + 1 感谢分享

查看全部评分

发表于 2023-8-21 11:52:33 | 显示全部楼层
本帖最后由 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
复制代码
发表于 2023-8-21 12:05:26 | 显示全部楼层
学习了,有提高
发表于 2023-8-21 12:23:22 | 显示全部楼层
回复 8# buyiyang


   
谢谢大佬指点!学习了!
 楼主| 发表于 2023-8-21 18:19:46 | 显示全部楼层
加一个可以右对齐的功能
buyiyang 发表于 2023-8-21 11:52



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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 14:41 , Processed in 0.021967 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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