我正在尝试运行以下命令并仅获取第二行并将其放入批处理文件中的变量中以进行字符串比较
wmic baseboard get product
这将输出以下内容
Product
20BUS0YN00
我只想要第二行
这就是我正在尝试的,但它获得了第一行和之后的空行
for /f %%i in ('wmic baseboard get Product') do set VAR=%%i
答案 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=%*"