Questa è la mia stringa per ottenere la posizione di TeamViewer (qualsiasi versione) servizio eseguibile:Come rimuovere le righe vuote dall'output wmic?
for /f "skip=1 delims=" %A in ('wmic path win32_service where "name like 'TeamViewer%'" get pathname') do set POSITION=%A
Il problema è causato da wmic
perché include una riga vuota alla fine del risultato (a comando di Windows 7) e questo è il risultato:
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.
Come posso ottenere solo la seconda linea di uscita con la corretta posizione del file eseguibile? (o saltare l'ultima riga, ovviamente).
Grazie in anticipo e buona giornata. Giovanni.
Questo è 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%
E -I aggiungere alla richiesta- può Includo la stringa completa in un file batch? Devo specificare qualcosa prima? – Giovanni
Se si desidera utilizzare questo in un file batch, è necessario modificare '% A' su' %% A'. –
Se cambio '% A' in'% AA' il batch non produce nulla: 'per/f" skip = 1 delim = "%% A in ('percorso wmic win32_service dove" nome come' TeamViewer% ' "get pathname^| findstr/r/v"^$ "') imposta POSITION = %% A' ' C: \> checkteamviewer.bat C: \> ' – Giovanni