To jest mój ciąg, aby uzyskać pozycję TeamViewer (dowolna wersja) wykonywalnego usługi:Jak mogę usunąć puste wiersze z pliku wmic?
for /f "skip=1 delims=" %A in ('wmic path win32_service where "name like 'TeamViewer%'" get pathname') do set POSITION=%A
Problem jest spowodowany przez wmic
ponieważ zawiera pustą linię na końcu wyniku (na Windows 7 poleceń) i to jest wyjście:
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.
Jak mogę uzyskać tylko drugi wiersz wyjścia z poprawną pozycją pliku wykonywalnego? (lub oczywiście pominąć najnowszą linię).
Dziękuję wszystkim z góry i życzę miłego dnia. Giovanni.
To 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 -I dodać do request- puszka Dołączam cały ciąg do pliku wsadowego? Muszę coś wcześniej określić? – Giovanni
Jeśli chcesz użyć tego w pliku wsadowym, musisz zmienić "% A" na "%% A". –
Jeśli zmienię "% A" w "% AA" partia nie produkuje niczego: 'for/f" skip = 1 delims = "%% A in ('ścieżka wmic win32_service gdzie" nazwa jak "TeamViewer%" "get pathname^| findstr/r/v"^$ "') ustaw POZYCJĘ = %% A' ' C: \> checkteamviewer.bat C: \> ' – Giovanni