无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5195|回复: 45
打印 上一主题 下一主题

[已解决] 【已解决】批处理怎样查看C盘已用空间?谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2023-8-17 11:10:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyz2191958 于 2023-8-21 19:35 编辑

完美解决了:
@echo off
::【查C:盘空间】
cd /d D:\1绿色软件\关闭显示器\
:A
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" )
::【(# 0——使用率保留0位小数)(# 1——总空间和剩余空间保留1位小数)(# 2——已用空间保留2位小数)】
@echo.
@echo.
@echo.
@echo.
@echo.   
@echo                               C盘 %已用空间%   参考 5.85
@echo.
@echo.
@echo.
@echo.
echo        分区            总的            剩余            已用           用率
echo.
echo        C 盘            %总空间%            %剩余空间%            %已用空间%           %使用率% %%
echo.       -------------------------------------------------------------------
pause>nul 2>nul
::【删除“ie临时文件”】
Del /f /s /q  "C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\*.*"
Del /f /s /q  "D:\桌面\Temporary Internet Files\*.*"
::【启动:DiskCleaner2.0.exe】
"%~dp0Disk Cleaner 2.0.exe"
cls
goto :A
exit

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

********************************
原来的问题:
批处理怎样查看C盘已用空间?


2#
发表于 2023-8-17 12:10:37 | 只看该作者
wmic LogicalDisk where "Caption='C:'" get FreeSpace/value

点评

如何格式化这个值变为多少G多少M多少K?  详情 回复 发表于 2023-8-17 15:20
回复

使用道具 举报

3#
发表于 2023-8-17 12:26:52 来自手机 | 只看该作者
dir  c:

点评

不行哦  详情 回复 发表于 2023-8-17 12:43

评分

参与人数 1无忧币 +1 收起 理由
yyz2191958 + 1 赞一个!

查看全部评分

回复

使用道具 举报

4#
 楼主| 发表于 2023-8-17 12:43:55 | 只看该作者

不行哦

点评

截屏会么  详情 回复 发表于 2023-8-17 13:06
回复

使用道具 举报

5#
发表于 2023-8-17 13:06:01 来自手机 | 只看该作者
yyz2191958 发表于 2023-8-17 12:43
不行哦

截屏会么
回复

使用道具 举报

6#
发表于 2023-8-17 13:13:09 | 只看该作者
我试了下,最后一行是显示多少可用字节,就是剩余空间啊。
回复

使用道具 举报

7#
发表于 2023-8-17 14:03:44 | 只看该作者
dir c:\ |findstr 可用
回复

使用道具 举报

8#
发表于 2023-8-17 15:20:09 | 只看该作者
本帖最后由 窄口牛 于 2023-8-17 15:40 编辑
holley2008 发表于 2023-8-17 12:10
wmic LogicalDisk where "Caption='C:'" get FreeSpace/value


如何格式化这个值变为多少G多少M多少K?做个计算就echo不出来了。
回复

使用道具 举报

9#
发表于 2023-8-17 15:44:06 | 只看该作者
powershell (Get-CimInstance Win32_LogicalDisk).where({$_.deviceid -match 'c:'}).freespace/1gb

点评

测试这个指令比较OK。 比如,指令: C:\>powershell (Get-CimInstance Win32_LogicalDisk).where({$_.deviceid -match 'c:'}).freespace/1gb 结果: 42.2148895263672  发表于 2023-8-17 16:19
回复

使用道具 举报

10#
发表于 2023-8-17 16:05:43 | 只看该作者
本帖最后由 liangzr1976 于 2023-8-17 16:53 编辑

唉!问题问得简单,实际要求根本不是 普通命令,而是 命令行如何做 文本识别及提取计算。
这样变成一个大的问题了。

看人家 grub 都是用集成 模块 RUN 等工具

普通的情况是:
命令:
C:\>dir c:\ |findstr 可用字节

结果:
               9 个目录 45,337,948,160 可用字节

建议自己用兼容 winnt的命令行 basice 或 C 编程来 套取完成。用C语言编程的文本识别 或 正则表达式 计算
也可以参考这类文章:
https://it.cha138.com/mysql/show-2386630.html
BAT/CMD中将命令执行结果赋值给变量


https://cloud.tencent.com/developer/article/1729656wmic命令解析与实例


回复

使用道具 举报

11#
发表于 2023-8-17 17:00:44 来自手机 | 只看该作者
结果:      9 个目录
回复

使用道具 举报

12#
发表于 2023-8-17 18:23:35 来自手机 | 只看该作者
8.1系统自带一个命令行工具,10和7好像没有,支持友好的单位显示已用空间和分区大小

dfp /drives /b
回复

使用道具 举报

13#
发表于 2023-8-17 18:46:55 | 只看该作者
C盘乘空间?什么意思???

点评

大数乘除麻烦些  详情 回复 发表于 2023-8-17 19:51
回复

使用道具 举报

14#
发表于 2023-8-17 19:35:26 | 只看该作者
本帖最后由 9zhmke 于 2023-8-17 19:54 编辑


是这个意思吗?
  1. @echo off
  2. for /f "tokens=3 delims= " %%i in ('dir c:') do set free=%%i
  3. set i=%free:,=%
  4. set free=%i:~0,-6%
  5. echo C盘的空间还有:%free%兆
复制代码
里面确实有个陷阱,使用set /a 来计算时会出因为数值太大而出错


点评

赞一个!!! 直接运行bat,好像没有显示, 但将 @echo off 改为 @echo on ,检查过程是能得到 set free=53132, 手工在CMD窗口执行 echo %free% ,能正常显示 剩余数值  发表于 2023-8-17 22:51
回复

使用道具 举报

15#
 楼主| 发表于 2023-8-17 19:47:19 | 只看该作者
PE下没有解决问题

点评

你好, 14楼的代码,我在wePE2.3_64.ISO 运行在vortualBOX 7.0.10 环境中,能正常完成并显示  详情 回复 发表于 2023-8-17 23:43
来个PECMD代码: ifex C:\=?,a //查C:盘可用空间 calc b=%a% / 1g # 2 //以G为单位,保留两位小数 mess. [C盘可用空间:%b%GB]  详情 回复 发表于 2023-8-17 20:44
回复

使用道具 举报

16#
发表于 2023-8-17 19:51:07 来自手机 | 只看该作者
青青草 发表于 2023-8-17 18:46
C盘乘空间?什么意思???

大数乘除麻烦些
回复

使用道具 举报

17#
发表于 2023-8-17 20:02:09 | 只看该作者
yyz2191958 发表于 2023-8-17 19:47
PE下没有解决问题

看9#
回复

使用道具 举报

18#
发表于 2023-8-17 20:44:25 | 只看该作者
yyz2191958 发表于 2023-8-17 19:47
PE下没有解决问题

来个PECMD代码:

ifex C:\=?,a    //查C:盘可用空间
calc b=%a% / 1g # 2  //以G为单位,保留两位小数
mess. [C盘可用空间:%b%GB]

点评

搞错了 是需要查看C盘已用空间  详情 回复 发表于 2023-8-18 07:25
我需要查看剩余空间,谢谢  详情 回复 发表于 2023-8-18 07:03

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 我需要查看剩余空间,谢谢

查看全部评分

回复

使用道具 举报

19#
发表于 2023-8-17 23:43:46 | 只看该作者
yyz2191958 发表于 2023-8-17 19:47
PE下没有解决问题

你好,
14楼的代码,我在wePE2.3_64.ISO 运行在vortualBOX 7.0.10 环境中,能正常完成并显示

点评

我这里没有显示 谢谢  详情 回复 发表于 2023-8-18 07:11
回复

使用道具 举报

20#
发表于 2023-8-17 23:46:24 | 只看该作者

回复

使用道具 举报

21#
发表于 2023-8-18 00:33:48 | 只看该作者
谢楼主分享
回复

使用道具 举报

22#
 楼主| 发表于 2023-8-18 07:03:12 | 只看该作者
527104427 发表于 2023-8-17 20:44
来个PECMD代码:

ifex C:\=?,a    //查C:盘可用空间

我需要查看剩余空间,谢谢
回复

使用道具 举报

23#
 楼主| 发表于 2023-8-18 07:11:50 | 只看该作者
liangzr1976 发表于 2023-8-17 23:43
你好,
14楼的代码,我在wePE2.3_64.ISO 运行在vortualBOX 7.0.10 环境中,能正常完成并显示

我这里没有显示  谢谢

点评

批处理没有正常运行有可能是文本使用了UFT8格式,另存或转为ANSI编码格式就可以了。  详情 回复 发表于 2023-8-18 10:25
我的意思是: 你试过将 @echo off 改为 @echo on,调试过没有?  详情 回复 发表于 2023-8-18 07:16
回复

使用道具 举报

24#
发表于 2023-8-18 07:16:49 | 只看该作者
本帖最后由 liangzr1976 于 2023-8-18 07:18 编辑
yyz2191958 发表于 2023-8-18 07:11
我这里没有显示  谢谢

我的意思是:
你试过将 @echo off 改为 @echo on,调试过没有?如果这样改, 运行时,出现什么提示信息?


点评

改了 一闪而过  详情 回复 发表于 2023-8-18 07:20
回复

使用道具 举报

25#
 楼主| 发表于 2023-8-18 07:20:41 | 只看该作者
liangzr1976 发表于 2023-8-18 07:16
我的意思是:
你试过将 @echo off 改为 @echo on,调试过没有?如果这样改, 运行时,出现什么提示信息 ...

改了
一闪而过
回复

使用道具 举报

26#
 楼主| 发表于 2023-8-18 07:25:21 | 只看该作者
527104427 发表于 2023-8-17 20:44
来个PECMD代码:

ifex C:\=?,a    //查C:盘可用空间

搞错了
是需要查看C盘已用空间

点评

find C:\=?,a //查C:盘总空间 ifex C:\=?,b //查C:盘剩余空间 calc c=(%a% - %b%) / 1g # 2 //以G为单位,保留两位小数 mess. [C盘已用空间:%c%GB]  详情 回复 发表于 2023-8-18 07:37
回复

使用道具 举报

27#
发表于 2023-8-18 07:37:31 | 只看该作者
yyz2191958 发表于 2023-8-18 07:25
搞错了
是需要查看C盘已用空间

find C:\=?,a    //查C:盘总空间
ifex C:\=?,b    //查C:盘剩余空间
calc c=(%a% - %b%) / 1g # 2  //以G为单位,保留两位小数
mess. [C盘已用空间:%c%GB]

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 很给力!

查看全部评分

回复

使用道具 举报

28#
发表于 2023-8-18 10:25:20 | 只看该作者
yyz2191958 发表于 2023-8-18 07:11
我这里没有显示  谢谢

批处理没有正常运行有可能是文本使用了UFT8格式,另存或转为ANSI编码格式就可以了。

点评

还是一样  详情 回复 发表于 2023-8-18 10:29
回复

使用道具 举报

29#
 楼主| 发表于 2023-8-18 10:29:04 | 只看该作者
9zhmke 发表于 2023-8-18 10:25
批处理没有正常运行有可能是文本使用了UFT8格式,另存或转为ANSI编码格式就可以了。

还是一样

点评

把第一行改成@echo on 再把屏幕上显示的内容贴上来看看  详情 回复 发表于 2023-8-18 10:45
回复

使用道具 举报

30#
发表于 2023-8-18 10:45:42 | 只看该作者
本帖最后由 9zhmke 于 2023-8-18 11:11 编辑

1、把第一行改成@echo on2、运行CMD
3、把批处理拖到黑窗口里并确定
4、把屏幕上显示的内容截个图贴上来看看

我猜想你双击运行批处理,因为没有加暂停,所以你看不到显示了些什么东西。如果是这样的话,你可以在最后加一行暂停:pause


回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-12 07:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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