试图在不使用临时文件的情况下使用diskpart获取系统中的磁盘数量。这可以在命令行上运行:
echo list disk | diskpart | find /C "Disk"
但是我不知道如何将结果重定向到批处理变量。当然,由于标签的原因,上述管道打印的数字更高,但它们是常数(将结果除以3为实际磁盘数量)。
任何想法?
我试过:
set /A disks=<echo list disk...
set /A disks<echo list disk...
set /A disks= (echo list disk ...)
您需要FOR F
来捕获程序的输出。
set "cmd=echo list disk | diskpart | find /C "Disk""
setlocal EnableDelayedExpansion
FOR /F "usebackq delims=" %%A in (`!cmd!`) do (
set var=%%A
)
echo !var!
您可以使用WMIC
来完成批处理文件,如下所示:
@echo off
wmic logicaldisk get caption,providername,drivetype,volumename > ListDisk.txt
Start "" ListDisk.txt
pause
如果您想像这样回显固定驱动器:
@echo off
for /f "tokens=2" %%i in ('wmic logicaldisk where "drivetype=3" ^|find /i ":"') do (Set FixedDrive=%%i)
echo %FixedDrive%
pause