这是获取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%
答案 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 =