在一行中获取命令提示符

Get command prompt out on one line

我正在尝试获取所有本地磁盘的型号和大小。
我想为每个磁盘输出一行。
示例:型号 Samsung 大小 500GB

@echo off
for /f "tokens=2 delims==" %%d in ('wmic diskdrive get Model,Size /value') do (
    set Model=%%d
set Size=%%d
)
echo Model %Model% Size %Size%
pause

但是什么都没有。

这是一种全天执行此操作的方法,支持 Windows 台机器。既定目标是 "one line." 如果您希望模型和尺寸在单独的变量中,还有更多工作要做。

powershell -NoLogo -NoProfile -Command ^
    "Get-CimInstance -ClassName CIM_DiskDrive |" ^
    "ForEach-Object { 'Model {0} Size {1}' -f @($_.Model, $_.size) }"

由于模型描述可能包含空格,您需要将输出格式化为 csv,因此输出以逗号分隔(我希望没有包含逗号的模型描述 - 我没看到到目前为止一个)。

如果没有 /value,每个磁盘都列在一行中 (Node,Model,Size),因此您需要 tokens=2,3。添加 skip=2 以删除 header 行并将固定字符串添加到最终输出:

for /f "skip=2 tokens=2,3 delims=," %%a in ('"wmic diskdrive get Model,Size /format:csv"') do @echo Model %%a Size %%b