如何从wmic输出中删除空行?

时间:2013-03-28 15:27:15

标签: windows path cmd wmic

这是获取TeamViewer(任何版本)服务可执行文件位置的字符串:

for /f "skip=1 delims=" %A in ('wmic path win32_service where "name like 'TeamViewer%'" get pathname') do set POSITION=%A

问题是由wmic引起的,因为它在结果的末尾包含一个空行(在Windows 7命令中),这是输出:

C:\Users\giovanni>for /f "skip=1 delims=" %A in ('wmic path win32_service where "name like 'TeamViewer%
'" get pathname') do set POSITION=%A

 :\Users\giovanni>set POSITION="C:\Program Files\TeamViewer\Version8\TeamViewer_Service.exe"

 :\Users\giovanni>set POSITION=

C:\Users\giovanni>echo %position%
ECHO enabled.

如何只使用可执行文件的正确位置获取输出的第二行? (当然,也可以跳过最新的一行)。

先谢谢大家,祝你有个愉快的一天。 乔瓦尼。

这是checktv.bat:

for /f "skip=1 delims=" %%A in ('wmic path win32_service where "name like 'TeamViewer%'" get pathname ^| findstr /r /v "^$"') do set POSITION=%%A
echo %POSITION%

2 个答案:

答案 0 :(得分:9)

像这样:

for /f "skip=1 delims=" %A in (
  'wmic path win32_service where "name like 'TeamViewer%'" get pathname ^| findstr /r /v "^$"'
) do set POSITION=%A

findstr /r /v "^$"从输出中删除空行。

答案 1 :(得分:6)

wmic blah / value |找到“=”>>无论

输出

字段=值

没有额外的行

从那里标记化,delim =