8

这是我获取 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%
4

2 回答 2

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 "^$"删除空行。

于 2013-03-28T15:46:11.800 回答
8

wmic 等等/值 | 在任何地方找到“=”>>

输出将是

字段=值

没有多余的行

从那里标记化,delim =

于 2013-06-12T14:59:33.590 回答