标题: [求助]如何用批处理获取U盘空间大小的一半?
[打印本页]
作者: paidui598
时间: 2008-5-11 21:58
标题: [求助]如何用批处理获取U盘空间大小的一半?
各位好,现在我想获得U盘空间大小的一半,请问如何编写命令实现,希望大家帮忙指导
(注:不是剩余空间,是原始空间大小的一半)
[
Last edited by lxmxn on 2008-5-12 at 12:11 AM ]
作者: HAT
时间: 2008-5-12 00:21
@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%
作者: xixihua
时间: 2008-5-12 00:43
这个脚本实验如何
作者: HAT
时间: 2008-5-12 00:49
XP SP2 EN
512MB U盘
测试通过
作者: paidui598
时间: 2008-5-12 09:52
标题: 谢谢
感谢HAT的帮忙

作者: zh159
时间: 2008-5-12 09:56
XP SP2 4GB U盘
U盘总容量: 4035407872
U盘总容量的一半: 1073741823
测试总容量正确,总容量的一半出错
作者: paidui598
时间: 2008-5-12 10:10
标题: 求助
求助HAT,如果想获得其它盘的空间大小,应该如何写呢
作者: HAT
时间: 2008-5-12 12:45
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"
作者: HAT
时间: 2008-5-12 12:46
Quote: |
Originally posted by paidui598 at 2008-5-12 10:10 AM:
求助HAT,如果想获得其它盘的空间大小,应该如何写呢 |
|
其它盘是指整个硬盘?还是硬盘的某个分区?还是两个或多个U盘中的某一个?还是移动硬盘?
作者: paidui598
时间: 2008-5-12 13:01
Quote: |
Originally posted by HAT at 2008-5-12 12:46 PM:
其它盘是指整个硬盘?还是硬盘的某个分区?还是两个或多个U盘中的某一个?还是移动硬盘? |
|
是指硬盘的一个分区,比如求D盘空间大小的一半,再次感谢HAT
作者: zh159
时间: 2008-5-12 15:36
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" |
|
作者: HAT
时间: 2008-5-12 20:37
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"
作者: paidui598
时间: 2008-5-12 20:43
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高手的帮忙,

作者: paidui598
时间: 2008-5-13 20:56
还想问一下,如果想让上面代码在DOS6.22中运行应该如何改

作者: LONGFENG425
时间: 2008-6-29 00:12
高