How can I remove empty lines from wmic output?

cmd, path, windows, wmic

Solution

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.

Problem

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% ```

Original source