Это моя строка, чтобы получить позицию TeamViewer (любой версии) службы исполняемому:Как удалить пустые строки из wmic-вывода?
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.
Как я могу получить только вторую строку вывода с правильной позицией исполняемого файла? (или, конечно, пропустить последнюю строку).
Спасибо всем заблаговременно и приятный день. Giovanni.
Это 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%
И -I добавить к request- может Я включаю полную строку в пакетный файл? Мне нужно что-то указать раньше? – Giovanni
Если вы хотите использовать это в пакетном файле, вам нужно изменить '% A' на' %% A'. –
Если я изменяю '% A' в'% AA', пакет ничего не производит: 'for/f 'skip = 1 delims =" %% A in (' wmic path win32_service где "name like 'TeamViewer%' "get pathname^| findstr/r/v"^$ "') установить POSITION = %% A' ' C: \> checkteamviewer.bat C: \> ' – Giovanni