一行获取命令提示符

时间:2019-06-07 10:37:01

标签: cmd wmi wmic

我正在尝试获取所有本地磁盘的型号和大小。
我想为每个磁盘在一行上输出。
示例:型号三星大小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

但没有。

2 个答案:

答案 0 :(得分:1)

由于模型描述中可能包含空格,因此您需要将输出格式设置为this,因此输出要以逗号分隔(我希望没有包含逗号的模型描述-我没看到这样远)。

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

skip=2

答案 1 :(得分:0)

这是目前受支持的Windows机器上执行此操作的一种方法。既定目标是“一条线”。如果要在单独的变量中使用模型和尺寸,则还有更多工作要做。

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