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