2013-03-28 22 views
7

Dies ist meine Zeichenfolge, die die Position von Teamviewer (alle Versionen) Service ausführbare Datei zu erhalten:Wie kann ich leere Zeilen aus WMIC-Ausgabe entfernen?

for /f "skip=1 delims=" %A in ('wmic path win32_service where "name like 'TeamViewer%'" get pathname') do set POSITION=%A 

Das Problem wird verursacht durch wmic, weil es eine leere Zeile am Ende des Ergebnisses (auf Windows 7-Befehl) enthält und dies ist die Ausgabe:

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. 

Wie ich nur die zweite Zeile der Ausgabe mit der korrekten Position der ausführbaren Datei bekommen? (oder überspringen Sie natürlich die letzte Zeile).

Vielen Dank im Voraus und einen schönen Tag. Giovanni.

Dies ist 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% 

Antwort

9

So:

for /f "skip=1 delims=" %A in (
    'wmic path win32_service where "name like 'TeamViewer%'" get pathname ^| findstr /r /v "^$"' 
) do set POSITION=%A 

Die findstr /r /v "^$" leere Zeilen aus der Ausgabe entfernt.

+0

und -I zu dem Anfrage- hinzufügen Ich füge den kompletten String in eine Batch-Datei ein? Ich muss vorher etwas angeben? – Giovanni

+0

Wenn Sie dies in einer Batch-Datei verwenden möchten, müssen Sie '% A' in' %% A' ändern. –

+0

Wenn ich '% A' in'% AA' ändere, erzeugt der Batch nichts: 'for/f" überspringen = 1 delims = "%% A in ('wmic Pfad win32_service wo" Name wie' TeamViewer% ' "get pfadname^| findstr/r/v"^$ "') setze POSITION = %% A' ' C: \> checkteamviewer.bat C: \> ' – Giovanni

5

wmic blah/Wert | finden "=" >> wo

Ausgang

Feld = Wert

keine zusätzlichen Zeilen

tokenize sein von dort delim =

+0

Schöner Punkt. Der '/ VALUE' Schalter scheint nicht dokumentiert zu sein, wenn' wmic /? 'Ausgeführt wird. –

Verwandte Themen