标题: [数值计算] 谁有完美的显示u盘的剩余容量和总容量批处理啊? [打印本页]
作者: shuaige100 时间: 2010-6-24 23:04 标题: 谁有完美的显示u盘的剩余容量和总容量批处理啊?
- @echo off
- for /f "skip=1 tokens=1-3" %%i in ('"wmic logicaldisk where name='i:' get name,freespace,size"') do (set m1=%%i &set m3=%%k & set m2=%%j & goto label)
- :label
- set /a m1=%m1: =%/1024/1024,m3=%m3: =%/1024/1024
- (echo 盘符:%m2%&echo 总容量:%m3%MB&echo 剩余容量:%m1%MB)|msg %username% /time:5
复制代码
以上批处理broly 说超过2g的内存卡不会已mb为单位显示了,如果也能显示以g为单位的就和我的电脑查看一模一样咯。那样就太完美了
[ 本帖最后由 shuaige100 于 2010-7-6 22:48 编辑 ]
作者: sgaizxt001 时间: 2010-6-25 00:44
把echo off改为echo on看他的输出信息。
比如输入的是C盘
for /f "delims=" %%i in ('chkntfs %pf%:') do (set /a m+=1 & set m!m!=%%i)
这里是从chkntfs c:的输出信息里来进行判断,如果磁盘检查没问题的话一般就输出两行。他设置m1=第一行,m2=第二行。这里你可以先chkntfs /?看一下这个命令的帮助
然后最后一句是
(echo %pf%盘%m1:~4% & echo %m2%) | msg %username% /time:5
echo你应该懂,msg是发送消息命令,不过需要服务支持。具体可以查看msg /?
作者: shuaige100 时间: 2010-6-25 15:59 标题: 回复 2楼 的帖子
你等于没解释,我就觉得他为什么要set /a m+=1 & set m!m!=%%i;echo %pf%盘%m1:~4%,这里我新手看的懂吗?
作者: 随风 时间: 2010-6-25 16:23
原帖由 shuaige100 于 2010-6-25 15:59 发表
你等于没解释,我就觉得他为什么要set /a m+=1 & set m!m!=%%i;echo %pf%盘%m1:~4%,这里我新手看的懂吗?
看不懂还不谦虚,你要搞清楚这里没有人是必须回答你的问题的,回帖是热心是人情。要想获得别人的帮助,先学学怎么提问怎么说话怎么尊重别人吧,这些小学老师就应该教过呀?
作者: broly 时间: 2010-6-25 17:27
找了点空闲是时间,给你解释一下。。。
for /f "delims=" %%i in (') do (set /a m+=1 & set m!m!=%%i)
这句是把chkntfs这个命令的两句话赋值给m1和m2两个变量
echo %pf%盘%m1:~4%
这句是把变量M1的除了前面四个字以外的字显示出来。。。
作者: sgaizxt001 时间: 2010-6-25 18:40
楼主,你看我的2楼的回复。我说的还不够清楚吗?
如果磁盘检查没问题的话一般就输出两行。他设置m1=第一行,m2=第二行。
如果你不知道某个命令的输出时什么,那么就自己试验一下,看看他的输出效果。
作者: shuaige100 时间: 2010-6-25 19:10 标题: 回复 5楼 的帖子
为什么我用在这个会显示不出任何命令的两句话?
wmic logicaldisk where "name='d:'" get name,freespace,size
作者: Batcher 时间: 2010-6-26 02:00 标题: 回复 7楼 的帖子
“显示不出任何命令的两句话”是什么意思?
作者: pdanniel66 时间: 2010-6-26 09:34
C:\>wmic logicaldisk where "name='d:'" get name,freespace,size
FreeSpace Name Size
4613623808 D: 95495499776
作者: shuaige100 时间: 2010-6-26 12:07 标题: 回复 8楼 的帖子
我加用msg这个命令显示不出东西
作者: broly 时间: 2010-6-29 14:59
::根据你的要求,我写下一个可以满足你的P
::由于批处理本身计算能力有限,如果你的储存设备超过2G,则显示不出以MB为单位的容量
::或者你自己想办法解决
-
- @echo off
- for /f "skip=1 tokens=1-3" %%i in ('"wmic logicaldisk where name='i:' get name,freespace,size"') do (set m1=%%i &set m3=%%k & set m2=%%j & goto label)
- :label
- set /a m1=%m1: =%/1024/1024,m3=%m3: =%/1024/1024
- (echo 盘符:%m2%&echo 总容量:%m3%MB&echo 剩余容量:%m1%MB)|msg %username% /time:5
复制代码
作者: shuaige100 时间: 2010-6-29 18:11 标题: 回复 11楼 的帖子
— —,我用的是8g内存卡
[ 本帖最后由 shuaige100 于 2010-6-29 23:36 编辑 ]
作者: broly 时间: 2010-6-29 19:50
批处理计算能力有限,不能计算超过2G的数。如果你想实现计算的话,你发张贴,应该有人可以解决的
作者: x9tiancmd 时间: 2010-7-1 19:59
用defrag 磁盘整理碎片的查看功能,看不好吗?
defrag -a 盘符|find "**"
作者: shuaige100 时间: 2010-7-6 23:20 标题: 回复 14楼 的帖子
哎,所有的方法都感觉很浪费资源,真没办法
作者: junwalo 时间: 2010-7-7 10:51
学习中,谢谢各位。。。。。
作者: broly 时间: 2010-7-8 16:01
- @echo off &setlocal enabledelayedexpansion
- for /f "skip=11 delims=" %%i in ('defrag -a i:') do (set /a m+=1 & set "m!m!=%%i")
- (echo %m1: =%
- echo %m2: =%
- echo %m4: =%)|msg %username% /time:5
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |