How can I remove empty lines from wmic output?

2019-03-27 10:54发布

This is my string to obtain the position of TeamViewer (any version) service executable:

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

The problem is caused by wmic because it includes an empty line at the end of result (on Windows 7 command) and this is the output:

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.

How I can get only the second line of the output with the correct position of the executable? (or skip the latest line, of course).

Thanks all in advance and have a nice day. Giovanni.

This is 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条回答
Ridiculous、
2楼-- · 2019-03-27 11:11

wmic blah /value | find "=" >> wherever

output will be

field=value

no extra lines

tokenize from there, delim =

查看更多
\"骚年 ilove
3楼-- · 2019-03-27 11:19

Like this:

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

The findstr /r /v "^$" removes empty lines from the output.

查看更多
登录 后发表回答