hurry307 发表于 2017-12-29 12:16:18

批处理获取硬盘容量

如何实现批处理获取sata0端口硬盘容量,并将该硬盘的赋值给某个变量

nttwqz 发表于 2017-12-29 12:36:59

能用WMIC否?

plusv 发表于 2017-12-30 02:14:36

wmic diskdrive get Size/value

hurry307 发表于 2017-12-30 12:23:35

不能用wmic

plusv 发表于 2017-12-31 07:05:16

我編程了一個 Delphi EXE.

已測試在

Real OS : Windows 7 X64.
VM OS : Windows XP.





nttwqz 发表于 2017-12-31 09:14:07

其实,fsutil可以获取硬盘容量,不过不知道怎么确定哪个端口

nttwqz 发表于 2017-12-31 20:26:26

@echo off
setlocal enabledelayedexpansion
for /f "tokens=2,4,5" %%a in ('echo list disk ^| diskpart ^| find "B"') do (
        for /f "tokens=1,2 delims=: " %%d in ('(echo sel disk %%a ^& echodetail disk^) ^| diskpart ^| findstr /i "类型 路径"') do (
                if "%%d"=="类型" if /i "%%e"=="SATA" set sata=yes
                if "!sata!"=="yes" if "%%d"=="路径" if "%%e"=="0" set "disk-0=%%b %%c" && goto end
        )
)

:end
echo SATA 0 硬盘容量:%disk-0%
pause

正确与否不得而知,我只有一个硬盘接口。

以上命令简单讲,就是选中各个磁盘查看其信息,看是否符合下面的条件,然后获取容量,不过路径:0到底是不是0口,就不知道了。
类型   : SATA

路径   : 0

hurry307 发表于 2018-1-1 18:17:37

diskpart可以获取,但不知道怎样把获取的值(0号硬盘,1号硬盘,2号硬盘),传给自己定义的变量diskid

hurry307 发表于 2018-1-1 18:19:48

我想实现的要判断硬盘端口号是0,1,2

hurry307 发表于 2018-1-1 18:20:14

我想实现的要判断硬盘端口号是0,1,2中的那个

nttwqz 发表于 2018-1-2 10:06:00

hurry307 发表于 2018-1-1 18:19
我想实现的要判断硬盘端口号是0,1,2

我的批处理不就是这样写的吗?具体是不是你自己测试。

nttwqz 发表于 2018-1-2 10:15:23

hurry307 发表于 2018-1-1 18:17
diskpart可以获取,但不知道怎样把获取的值(0号硬盘,1号硬盘,2号硬盘),传给自己定义的变量diskid

那你应该在主帖中写清楚,你的主帖中只说了0

可以改一下,用for获取
页: [1]
查看完整版本: 批处理获取硬盘容量