无忧启动论坛

 找回密码
 注册
搜索

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

查看数: 5052 | 评论数: 39 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-8-17 11:10

正文摘要:

本帖最后由 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:\ ...

回复

yyz2191958 发表于 2023-8-21 07:39:06
527104427 发表于 2023-8-20 23:38
@echo off
for /f "tokens=1,2,3,4 delims= " %%a in ('"pecmd.exe team find C:\=?,a^| ifex C:\=?,b^| ...

问题解决,再次感谢
527104427 发表于 2023-8-20 23:38:41
yyz2191958 发表于 2023-8-20 21:51
已有 “查看C盘.bat”(PE下使用):
@echo off
for /f "tokens=1,2,3 delims= " %%a in ('"pecmd.exe te ...

@echo off
for /f "tokens=1,2,3,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 # 0^| writ -,$+0,%%c%% %%d%% %%e%% %%f%%"') do ( set "总空间=%%a" && set "已用空间=%%b" && set "剩余空间=%%c" && set "使用率=%%d" )

echo         C盘          %总空间%GB        %剩余空间%GB         %已用空间%GB           %使用率%%%
echo        磁盘        总空间        剩余空间        已用空间          使用率
echo.      ---------------------------------------------------------------------
pause>nul 2>nul

点评

问题解决,再次感谢  详情 回复 发表于 2023-8-21 07:39

评分

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

查看全部评分

yyz2191958 发表于 2023-8-20 20:39:35
527104427 发表于 2023-8-20 12:15
@echo off
for /f "tokens=1,2,3 delims= " %%a in ('"pecmd.exe team find C:\=?,a^| ifex C:\=?,b^| c ...

能不能再帮我弄一个使用率:

即:已用空间/总空间*100

谢谢
yyz2191958 发表于 2023-8-20 18:16:46
527104427 发表于 2023-8-20 12:15
@echo off
for /f "tokens=1,2,3 delims= " %%a in ('"pecmd.exe team find C:\=?,a^| ifex C:\=?,b^| c ...

运行成功!谢谢
807979023 发表于 2023-8-20 16:45:29
527104427 发表于 2023-8-20 12:15
@echo off
for /f "tokens=1,2,3 delims= " %%a in ('"pecmd.exe team find C:\=?,a^| ifex C:\=?,b^| c ...

运行成功!
527104427 发表于 2023-8-20 12:15:26
本帖最后由 527104427 于 2023-8-20 12:48 编辑
807979023 发表于 2023-8-20 11:09
根据5大的代码,以下批处理在正常系统和pe中可以运行,
请问,如何将wcs变量%c% %d% %e%的值返回到批处理 ...

@echo off
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 "TotalSpace=%%a" && set "UsedSpace=%%b" && set "FreeSpace=%%c" )
echo 总空间:%TotalSpace%GB
echo 剩余空间:%FreeSpace%GB
echo 已用空间:%UsedSpace%GB
PAUSE



点评

能不能再帮我弄一个使用率: 即:已用空间/总空间*100 谢谢  详情 回复 发表于 2023-8-20 20:39
运行成功!谢谢  详情 回复 发表于 2023-8-20 18:16
运行成功!  详情 回复 发表于 2023-8-20 16:45
运行成功!  发表于 2023-8-20 15:59

评分

参与人数 2无忧币 +10 收起 理由
yyz2191958 + 5 很给力!
807979023 + 5 赞一个!

查看全部评分

807979023 发表于 2023-8-20 11:09:14
根据5大的代码,以下批处理在正常系统和pe中可以运行,
请问,如何将wcs变量%c% %d% %e%的值返回到批处理,不在wcs中显示?
相当于把pecmd和wcs当成是第3方命令行工具。

查看分区容量.bat:
@echo off&color 1f&echo.
set /p by=请选择盘符(不用冒号) :
start pecmd by.wcs

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


点评

@echo off 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%%  详情 回复 发表于 2023-8-20 12:15
窄口牛 发表于 2023-8-18 19:11:40
有这个就能统计内存的大小了。
holley2008 发表于 2023-8-18 16:36:51
holley2008 发表于 2023-8-17 12:10
wmic LogicalDisk where "Caption='C:'" get FreeSpace/value
  1. @echo off &setlocal enabledelayedexpansion
  2. set "GB=1073741824"
  3. ::已知1GB可以存放1073741824字节
  4. for /f "skip=1 delims=" %%i in ('wmic LogicalDisk where "Caption='C:'" get DeviceID^,FreeSpace^,Size') do (
  5.   for /f "tokens=1-3" %%j in ("%%i") do call :output %%j %%k %%l
  6. )
  7. goto :eof
  8. :output
  9. for /f "tokens=1-4" %%i in ('mshta vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(FormatNumber(%3/%GB%, 2) & "" "" & FormatNumber((%3-%2)/%GB%, 2) & "" "" & FormatNumber(%2/%GB%, 2) & "" "" & Round((%3-%2)*50/%3)):Close"^)') do (
  10.   set "size=      %%i"
  11.   set "used=      %%j"
  12.   set "free=      %%k"
  13.   set /a "nUsed=%%l, nFree=50-%%l"
  14. )
  15. echo,
  16. set c=%1
  17. echo  %c:~0,1% 分区 总空间大小: %size:~-10% GB
  18. echo  %c:~0,1% 分区 已使用空间: %used:~-10% GB
  19. echo  %c:~0,1% 分区 剩余空间:   %free:~-10% GB
  20. pause>nul
  21. goto :eof
复制代码
9zhmke 发表于 2023-8-18 10:45:42
本帖最后由 9zhmke 于 2023-8-18 11:11 编辑

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

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


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

还是一样

点评

把第一行改成@echo on 再把屏幕上显示的内容贴上来看看  详情 回复 发表于 2023-8-18 10:45
9zhmke 发表于 2023-8-18 10:25:20
yyz2191958 发表于 2023-8-18 07:11
我这里没有显示  谢谢

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

点评

还是一样  详情 回复 发表于 2023-8-18 10:29
527104427 发表于 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 很给力!

查看全部评分

yyz2191958 发表于 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
yyz2191958 发表于 2023-8-18 07:20:41
liangzr1976 发表于 2023-8-18 07:16
我的意思是:
你试过将 @echo off 改为 @echo on,调试过没有?如果这样改, 运行时,出现什么提示信息 ...

改了
一闪而过
liangzr1976 发表于 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
yyz2191958 发表于 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
yyz2191958 发表于 2023-8-18 07:03:12
527104427 发表于 2023-8-17 20:44
来个PECMD代码:

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

我需要查看剩余空间,谢谢
seeimpact153 发表于 2023-8-18 00:33:48
谢楼主分享
liangzr1976 发表于 2023-8-17 23:46:24

liangzr1976 发表于 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
527104427 发表于 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 我需要查看剩余空间,谢谢

查看全部评分

china.gaofeng 发表于 2023-8-17 20:02:09
yyz2191958 发表于 2023-8-17 19:47
PE下没有解决问题

看9#
szwp 发表于 2023-8-17 19:51:07
青青草 发表于 2023-8-17 18:46
C盘乘空间?什么意思???

大数乘除麻烦些
yyz2191958 发表于 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
9zhmke 发表于 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
青青草 发表于 2023-8-17 18:46:55
C盘乘空间?什么意思???

点评

大数乘除麻烦些  详情 回复 发表于 2023-8-17 19:51
nttwqz 发表于 2023-8-17 18:23:35
8.1系统自带一个命令行工具,10和7好像没有,支持友好的单位显示已用空间和分区大小

dfp /drives /b

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 06:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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