Голова -1 в командном файле Windows

Я хотел бы получить первую строку только из следующего вывода команды в Windows PE. Смотри ниже:

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

Выбор -First был бы вариантом, но он не работает. Я не слишком хорошо знаком с окнами, я знаком с линуксом.

Как я мог получить только первую строку вывода.

Если это возможно без findstr, даже лучше.


person Badb0y    schedule 07.07.2017    source источник
comment
Возможный дубликат Как я могу получить первую строку вывода для данной команды в dos   -  person Andre Kampling    schedule 07.07.2017
comment
Это должно работать, если вы можете сказать мне, как вставить в КОМАНДУ следующую команду: wmic nic, где NetConnectionStatus=2 get netconnectionid |findstr /v ^Net|findstr /v ^$, он жалуется на | даже если я убегу от него.   -  person Badb0y    schedule 07.07.2017


Ответы (2)


Как получить первую строку описано здесь, в SO. Но вы должны экранировать символы ^ и |, как сказано в этом руководстве.

Следующие фрагменты будут работать:

@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%

Я думаю, что последний пайп на findstr /v "^^$"" не нужен.

person Andre Kampling    schedule 07.07.2017

Наконец, временный файл может помочь лучше всего:

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