2017-07-07 4 views
0

Ich möchte die erste Zeile nur von der folgenden Befehlsausgabe in Windows Pe bekommen. Siehe unten:Head -1 in Windows Batch-Datei

wmic nic where "NetConnectionStatus=2" get netconnectionid |findstr /v "^Net"|findstr /v "^$" 

Wählen Sie -First wäre eine Option, aber es funktioniert nicht. Ich bin nicht vertraut mit Windows zu viel ich bin vertraut mit Linux.

Wie könnte ich nur die erste Zeile des Ausgangs bekommen.

Wenn es möglich ist ohne findstr noch besser.

+1

Mögliches Duplikat [Wie kann ich die erste Zeile der Ausgabe für gegebenen Befehl in dos bekommen] (https://stackoverflow.com/questions/ 13601015/how-can-i-get-the-first-line-of-the-output-for-given-command-in-dos) –

+1

Es sollte funktionieren, wenn Sie mir sagen können, wie Sie den folgenden Befehl in den Befehl einfügen : wmic nic, wo "NetConnectionStatus = 2" netconnectionid | findstr/v "^ Net" | findstr/v "^ $" bekommt, klagt es über die | auch wenn ich ihm entfliehen kann. – Badb0y

Antwort

0

Wie die erste Zeile zu erhalten ist beschrieben here at SO. Aber Sie müssen die ^ und die | Zeichen wie es in this guide gesagt wird entkommen.

Die snipped folgende funktioniert:

@echo off 

set "command=wmic nic where "netconnectionstatus=2" get netconnectionid ^| findstr /v "^^net" ^| findstr /v "^^$"" 
echo command: ^<%command%^> 

for /f "delims=" %%a in ('%command%') do (
    set tempvar=%%a 
    goto :print 
) 

:print 
echo result: %tempvar% 

ich glaube, das letzte Rohr findstr /v "^^$"" unnötig ist.

0

Schließlich wird eine temporäre Datei kann die beste Hilfe:

@echo off 
wmic nic where "NetConnectionStatus=2" get netconnectionid |findstr /v "^Net"|findstr /v "^$" >tmp.tmp 
set /p etc=<tmp.tmp 
echo %etc% 
Verwandte Themen