标题: [已解决]CMD下如何获取某个分区的总容量
[打印本页]
作者: chishingchan
时间: 2008-11-23 13:51
标题: [已解决]CMD下如何获取某个分区的总容量
搜索了几种方式也搜索不出来,希望懂的朋友帮忙编写一下批处理,谢谢!
注:不是剩余空间!最好不使用第三方软件,使用XP自带的命令就好了。
9、11楼正解
[
Last edited by chishingchan on 2008-11-24 at 12:24 ]
作者: HAT
时间: 2008-11-23 14:12
wmic LogicalDisk where "DeviceID='C:'" get Size /value
作者: chishingchan
时间: 2008-11-23 14:57
还是HAT版主的帮忙,谢谢!
除了WMIC外还有没有其他办法呢?
此批处理想设置到XP安装程序剩余12分钟时候运行的,会否不被支持?
[
Last edited by chishingchan on 2008-11-23 at 15:00 ]
作者: hackate
时间: 2008-11-23 18:03
我想可能不能支持,因为如果你是安装系统的话呢,WMI服务应该还没成功安装到系统上.或者说即便安装上了。可能还不能进行工作,我看你得换种方式来获取..但是除了用WMIC,似乎没有什么好的方式了哦
作者: chishingchan
时间: 2008-11-23 18:11
谢谢4楼回应,我也觉得如此。
作者: HAT
时间: 2008-11-23 20:31
标题: Re 3楼
操作系统还没装好,我们拿什么去运行批处理呢?
作者: chishingchan
时间: 2008-11-24 06:14
Quote: |
Originally posted by HAT at 2008-11-23 08:31 PM:
操作系统还没装好,我们拿什么去运行批处理呢? |
|
版主这句话不对吧?!
安装XP系统图形界面时按Shift + F10就会调出CMD界面了,证明批处理运行是不成问题的。当设定WINNT。SIF文件为OEM方式安装时,在剩余12分钟的时候会自动执行CMDLINES。TXT文件内包含的命令行,且我已亲自测试过可以接受批处理,但WMIC好像支持不了,可能系统没有完整的缘故。
版主还有没有其它办法?
作者: mountvol
时间: 2008-11-24 09:12
Quote: |
Originally posted by chishingchan at 2008-11-24 06:14:
版主这句话不对吧?!
安装XP系统图形界面时按Shift + F10就会调出CMD界面了,证明批处理运行是不成问题的。当设定WINNT。SIF文件为OEM方式安装时 ... |
|
不错,若等到无聊还可以运行一下自带的游戏解解闷。
WMIC不能用的话可以用dir,例如:dir d:\* /a/s | findstr /i "个文件 个目录"
作者: wangff
时间: 2008-11-24 10:05
可试一下:
chkdsk c:|find "总共有"
只是时间长了点.
作者: qzwqzw
时间: 2008-11-24 11:49
如果可以运行小游戏
哪么可以考虑一下diskpart.exe
例子可以搜索以前的帖子
作者: chishingchan
时间: 2008-11-24 12:21
Quote: |
Originally posted by wangff at 2008-11-24 10:05 AM:
可试一下:
chkdsk c:|find "总共有" 只是时间长了点. |
|
chkdsk c:|find "总"
请再看下面的对比:
[
Last edited by chishingchan on 2008-11-24 at 12:32 ]
作者: chishingchan
时间: 2008-11-24 12:30
分别检测,两个不同的结果:总数、总共有。且时间是有些。
Quote: |
D:\Documents and Settings\Administrator>chkdsk c:
文件系统的类型是 FAT32。
启动 卷创建了 2008-9-20 1:06
卷序列号为 1111-1111
Windows 正在校验文件和文件夹...
已完成文件和文件夹校验。
Windows 已检查文件系统并确定没有问题。
磁盘空间总数 4,276,965,376 字节。
11 个隐藏文件: 121,462,784 字节。
6 个文件夹: 24,576 字节。
62 个文件: 3,422,638,080 字节。
可用磁盘空间: 732,835,840 字节。
每个分配单元中有 4,096 字节。
磁盘上共有 1,044,181 个分配单元。
磁盘上有 178,915 个可用的分配单元。 |
|
Quote: |
D:\Documents and Settings\Administrator>chkdsk h:
文件系统的类型是 FAT32。
备份 卷创建了 2008-9-20 1:04
卷序列号为 5555-5555
Windows 正在校验文件和文件夹...
已完成文件和文件夹校验。
Windows 已检查文件系统并确定没有问题。
总共有 9,661,640 KB 的磁盘空间。
3 个隐藏文件中有 24 KB。
279 个文件夹中有 2,232 KB。
1,587 个文件中有 1,655,192 KB。
8,004,184 KB 可用。
每个分配单元中有 8,192 字节。
磁盘上共有 1,207,705 个分配单元。
磁盘上有 1,000,523 个可用的分配单元。 |
|
作者: chishingchan
时间: 2008-11-24 12:36
这下有些糟,如何运算呢?一个是字节,另一个是 KB
Quote: |
D:\Documents and Settings\Administrator>chkdsk c:|find "总"
磁盘空间总数 4,276,965,376 字节。
D:\Documents and Settings\Administrator>chkdsk h:|find "总"
总共有 9,661,640 KB 的磁盘空间。 |
|
作者: yishanju
时间: 2008-11-24 13:55
chkdsk 这命令运行起来需要半年的时间
晕
作者: HAT
时间: 2008-11-24 16:18
标题: Re 7楼
下次提问,建议在顶楼把问题背景和详细要求一次性描述清楚。
作者: qzwqzw
时间: 2008-11-24 16:37
@echo off
if "%1"=="" echo 请输入驱动器盘符(不带冒号) & goto :eof
> part.scr echo select volume %1
>> part.scr echo list partition
for /f "tokens=5,6" %%i in ('diskpart /s part.scr ^| find "*"') do (
echo 驱动器%1总容量为:%%i %%j
)
作者: wangff
时间: 2008-11-24 17:59
标题: Re:13 楼
@echo off
for /f "tokens=2,3" %%a in ('chkdsk %1^|find "总"') do (
set aa=%%a
set bb=%%b
)
set aa=%aa:,=%
if not "%bb%"=="KB" (
set/a aa/=1024
set bb=KB
)
set aa=%aa% %bb%
echo %aa%
这样结果匀为KB
[
Last edited by wangff on 2008-11-24 at 18:02 ]
作者: chishingchan
时间: 2008-11-24 20:57
Quote: |
Originally posted by wangff at 2008-11-24 05:59 PM:
[code]@echo off
for /f "tokens=2,3" %%a in ('chkdsk %1^|find "总"') do (
set aa=%%a
set bb=%%b
)
set aa=%aa:,=%
if not "%bb%"=="KB" (
set ... |
|
批处理看起来是对的,但是KB值是错的,与计算器得出的结果不一样。
难道计算的长度有所限制?
作者: HAT
时间: 2008-11-24 20:59
标题: Re 18楼
批处理里面没有除法,只有整除。
作者: chishingchan
时间: 2008-11-24 21:04
Quote: |
Originally posted by qzwqzw at 2008-11-24 04:37 PM:
[code]
@echo off
if "%1"=="" echo 请输入驱动器盘符(不带冒号) & goto :eof
> part.scr echo select volume %1
>> part.scr echo list partition
for ... |
|
首先谢谢!但结果难计算且不精确,或时MB,或时GB。
作者: chishingchan
时间: 2008-11-24 21:10
Quote: |
Originally posted by HAT at 2008-11-24 08:59 PM:
批处理里面没有除法,只有整除。 |
|
@echo off
for /f "tokens=2,3" %%a in ('chkdsk C:^|find "总"') do (
set size=%%a
set unit=%%b
)
set size=%size:,=%
echo %size%
echo %unit%
pause
if not %unit%*==KB* set /a size=size/2
echo %size% KB
pause
我只除以2,结果也是错的!
Quote: |
4276965376
字节。
请按任意键继续. . .
1073741823 KB
请按任意键继续. . . |
|
作者: HAT
时间: 2008-11-24 22:47
标题: Re 21楼
@echo off
set /a d=1^<^<31,x="~d"
echo cmd所能处理的最小数值为 %d%
echo cmd所能处理的最大数值为 %x%
作者: chishingchan
时间: 2008-11-25 04:30
Quote: |
Originally posted by HAT at 2008-11-24 10:47 PM:
@echo off
set /a d=1^<^<31,x="~d"
echo cmd所能处理的最小数值为 %d%
echo cmd所能处理的最大数值为 %x%
pause |
|
怪不得,数值已超过了,不过没关系,对比大小不存在错误。