从命令行获取输出并保存到变量

时间:2017-09-12 14:38:13

标签: batch-file

我正在尝试运行以下命令并仅获取第二行并将其放入批处理文件中的变量中以进行字符串比较

wmic baseboard get product

这将输出以下内容

Product
20BUS0YN00

我只想要第二行

这就是我正在尝试的,但它获得了第一行和之后的空行

for /f %%i in ('wmic baseboard get Product') do set VAR=%%i

3 个答案:

答案 0 :(得分:0)

sed 是选择该行的一种方法:

VAR="$( wmic baseboard get Product | sed -n '2p' )"

您还可以使用perl,tail或其他文本处理实用程序。

答案 1 :(得分:0)

for /f "tokens=2 delims==" %%i in ('wmic baseboard get Product /value') do set VAR=%%i

答案 2 :(得分:0)

因为WMIC的输出存在问题&#39;结束<CR><CR><LF>序列和Product的值通常会有不需要的尾随空格,(您可以使用Echo [%VAR%]检查),我建议一些事情更像这样:

@Echo Off
For /F "Skip=1Delims=" %%A In ('WMIC BaseBoard Get Product'
) Do For /F "Delims=" %%B In ("%%A") Do Call :Sub %%B
Echo [%VAR%]
Timeout -1
Exit/B
    :Sub
    Set "VAR=%*"