中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何用批处理获取U盘空间大小的一半?
作者:
标题: [求助]如何用批处理获取U盘空间大小的一半? 上一主题 | 下一主题
paidui598
初级用户





积分 41
发帖 15
注册 2008-5-7
状态 离线
『楼 主』:  [求助]如何用批处理获取U盘空间大小的一半?

各位好,现在我想获得U盘空间大小的一半,请问如何编写命令实现,希望大家帮忙指导
(注:不是剩余空间,是原始空间大小的一半)

[ Last edited by lxmxn on 2008-5-12 at 12:11 AM ]

2008-5-11 21:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  


@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get * /value ^| findstr /i "^size"') do set total=%%a
set /a half=total/2
echo U盘总容量: %total%
echo U盘总容量的一半: %half%


   此帖被 +2 点积分    点击查看详情   
评分人:【 paidui598 分数: +2  时间:2008-5-12 09:50


2008-5-12 00:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xixihua
新手上路





积分 13
发帖 8
注册 2008-5-11
状态 离线
『第 3 楼』:  

这个脚本实验如何

2008-5-12 00:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

XP SP2 EN
512MB U盘
测试通过

2008-5-12 00:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
paidui598
初级用户





积分 41
发帖 15
注册 2008-5-7
状态 离线
『第 5 楼』:  谢谢

感谢HAT的帮忙

2008-5-12 09:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 6 楼』:  

XP SP2 4GB U盘
U盘总容量: 4035407872
U盘总容量的一半: 1073741823
测试总容量正确,总容量的一半出错



2008-5-12 09:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
paidui598
初级用户





积分 41
发帖 15
注册 2008-5-7
状态 离线
『第 7 楼』:  求助

求助HAT,如果想获得其它盘的空间大小,应该如何写呢

2008-5-12 10:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by zh159 at 2008-5-12 09:56 AM:
XP SP2 4GB U盘
U盘总容量: 4035407872
U盘总容量的一半: 1073741823
测试总容量正确,总容量的一半出错

批处理能够直接的计算的数值上限是2^31
调用VBS计算一下就行了
zh159 兄再测试一下这个?
@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get * /value ^| findstr /i "^size"') do set total=%%a
echo U盘总容量: %total%
>"%tmp%\cacl.vbs" echo a=%total%
>>"%tmp%\cacl.vbs" echo b=a/2
>>"%tmp%\cacl.vbs" echo wscript.echo b
for /f %%a in ('cscript /nologo "%tmp%\cacl.vbs"') do echo U盘总容量的一半: %%a
del /q "%tmp%\cacl.vbs"


2008-5-12 12:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by paidui598 at 2008-5-12 10:10 AM:
求助HAT,如果想获得其它盘的空间大小,应该如何写呢

其它盘是指整个硬盘?还是硬盘的某个分区?还是两个或多个U盘中的某一个?还是移动硬盘?

2008-5-12 12:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
paidui598
初级用户





积分 41
发帖 15
注册 2008-5-7
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by HAT at 2008-5-12 12:46 PM:

其它盘是指整个硬盘?还是硬盘的某个分区?还是两个或多个U盘中的某一个?还是移动硬盘?

是指硬盘的一个分区,比如求D盘空间大小的一半,再次感谢HAT

2008-5-12 13:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by HAT at 2008-5-12 12:45:

批处理能够直接的计算的数值上限是2^31
调用VBS计算一下就行了
zh159 兄再测试一下这个?

[code]@echo off
for /f "tokens=2 delims==" %%a in ('wmic Logi ...

VBS一句就够了:

  Quote:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get * /value ^| findstr /i "^size"') do set total=%%a
echo U盘总容量: %total%
>"%tmp%\cacl.vbs" echo wscript.echo %total%/2
for /f %%a in ('cscript /nologo "%tmp%\cacl.vbs"') do echo U盘总容量的一半: %%a
del /q "%tmp%\cacl.vbs"





2008-5-12 15:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by paidui598 at 2008-5-12 01:01 PM:



是指硬盘的一个分区,比如求D盘空间大小的一半,再次感谢HAT


@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DeviceID='D:'" get * /value ^| findstr /i "^size"') do set total=%%a
echo D盘总容量: %total%
>"%tmp%\cacl.vbs" echo wscript.echo %total%/2
for /f %%a in ('cscript /nologo "%tmp%\cacl.vbs"') do echo D盘总容量的一半: %%a
del /q "%tmp%\cacl.vbs"


   此帖被 +2 点积分    点击查看详情   
评分人:【 paidui598 分数: +2  时间:2008-5-12 20:42


2008-5-12 20:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
paidui598
初级用户





积分 41
发帖 15
注册 2008-5-7
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by HAT at 2008-5-12 08:37 PM:

[code]@echo off
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DeviceID='D:'" get * /value ^| findstr /i "^size"') do set total=%%a
echo D盘总容量 ...

感谢HAT高手的帮忙,

2008-5-12 20:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paidui598
初级用户





积分 41
发帖 15
注册 2008-5-7
状态 离线
『第 14 楼』:  

还想问一下,如果想让上面代码在DOS6.22中运行应该如何改

2008-5-13 20:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
LONGFENG425
新手上路





积分 18
发帖 9
注册 2005-10-20
状态 离线
『第 15 楼』:  



2008-6-29 00:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: