这是我的string来获取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%
喜欢这个:
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 "^$"
从输出中删除空行。
wmic blah / value | 找到“=”>>任何地方
输出将是
字段=值
没有额外的线路
从那里标记,delim =