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

[数值计算] 谁有完美的显示u盘的剩余容量和总容量批处理啊?

  1. @echo off
  2. 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)
  3. :label
  4. set /a m1=%m1: =%/1024/1024,m3=%m3: =%/1024/1024
  5. (echo 盘符:%m2%&echo 总容量:%m3%MB&echo 剩余容量:%m1%MB)|msg %username% /time:5
复制代码
以上批处理broly 说超过2g的内存卡不会已mb为单位显示了,如果也能显示以g为单位的就和我的电脑查看一模一样咯。那样就太完美了

[ 本帖最后由 shuaige100 于 2010-7-6 22:48 编辑 ]

把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 /?
努力学习,努力挣分

TOP

回复 2楼 的帖子

你等于没解释,我就觉得他为什么要set /a m+=1 & set m!m!=%%i;echo %pf%盘%m1:~4%,这里我新手看的懂吗?

TOP

原帖由 shuaige100 于 2010-6-25 15:59 发表
你等于没解释,我就觉得他为什么要set /a m+=1 & set m!m!=%%i;echo %pf%盘%m1:~4%,这里我新手看的懂吗?

看不懂还不谦虚,你要搞清楚这里没有人是必须回答你的问题的,回帖是热心是人情。要想获得别人的帮助,先学学怎么提问怎么说话怎么尊重别人吧,这些小学老师就应该教过呀?
技术问题请到论坛发帖求助!

TOP

找了点空闲是时间,给你解释一下。。。

for /f "delims=" %%i in (') do (set /a m+=1 & set m!m!=%%i)
这句是把chkntfs这个命令的两句话赋值给m1和m2两个变量

echo %pf%盘%m1:~4%
这句是把变量M1的除了前面四个字以外的字显示出来。。。
---学无止境---

TOP

楼主,你看我的2楼的回复。我说的还不够清楚吗?
如果磁盘检查没问题的话一般就输出两行。他设置m1=第一行,m2=第二行。

如果你不知道某个命令的输出时什么,那么就自己试验一下,看看他的输出效果。
努力学习,努力挣分

TOP

回复 5楼 的帖子

为什么我用在这个会显示不出任何命令的两句话?
wmic logicaldisk where "name='d:'" get name,freespace,size

TOP

回复 7楼 的帖子

“显示不出任何命令的两句话”是什么意思?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

C:\>wmic logicaldisk where "name='d:'" get name,freespace,size
FreeSpace   Name  Size
4613623808  D:    95495499776

TOP

回复 8楼 的帖子

我加用msg这个命令显示不出东西

TOP

::根据你的要求,我写下一个可以满足你的P
::由于批处理本身计算能力有限,如果你的储存设备超过2G,则显示不出以MB为单位的容量
::或者你自己想办法解决

  1. @echo off
  2. 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)
  3. :label
  4. set /a m1=%m1: =%/1024/1024,m3=%m3: =%/1024/1024
  5. (echo 盘符:%m2%&echo 总容量:%m3%MB&echo 剩余容量:%m1%MB)|msg %username% /time:5
复制代码
---学无止境---

TOP

回复 11楼 的帖子

— —,我用的是8g内存卡

[ 本帖最后由 shuaige100 于 2010-6-29 23:36 编辑 ]

TOP

批处理计算能力有限,不能计算超过2G的数。如果你想实现计算的话,你发张贴,应该有人可以解决的

TOP

用defrag  磁盘整理碎片的查看功能,看不好吗?

  defrag -a 盘符|find "**"
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

回复 14楼 的帖子

哎,所有的方法都感觉很浪费资源,真没办法

TOP

返回列表