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

Gio*_*nni 7 windows cmd path wmic

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

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

问题是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.
Run Code Online (Sandbox Code Playgroud)

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

提前全部感谢您,祝您度过愉快的一天.乔瓦尼.

这是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%
Run Code Online (Sandbox Code Playgroud)

Ans*_*ers 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
Run Code Online (Sandbox Code Playgroud)

findstr /r /v "^$"除去从输出空行.


Dav*_*ang 6

wmic blah/value | 在哪里找到"=">>

输出将是

字段=值

没有额外的线条

从那里标记化,delim =