Hogy tudok egy batch szkriptben a SET-be agyazni egy hosszabb parancsot

Van ez a parancsom:
wmic nic where "NetConnectionStatus=2" get netconnectionid |findstr /v "^Net"|findstr /v "^$"

ami ezt ad vissza:
Embedded FlexibleLOM 1 Port 1
Embedded FlexibleLOM 1 Port 2

Hogy tudnam ezt ugy megcsinalni, hogy csak az elso sort adja vissza?

Winpe osregi kaki rendszerrol van szo,igy sajnos a select -first 1 nem mukodik. Jo lenne, ha a findstr sem kellene, de ha kell, akkor az talan megoldhato.

Illetve amit probaltam es talan ez is megoldas lehet, hogy ez a script:

@ECHO OFF

SET COMMAND=wmic nic where "NetConnectionStatus=2" get netconnectionid^|findstr "Net"
FOR /F "delims=" %%A IN ('%COMMAND%') DO (
SET TEMPVAR=%%A
GOTO :Print
)

:Print
ECHO %TEMPVAR%

De ez meg azert nem mukodik mert nem eszi meg a | valamiert :(

BTW: ha lefuttatom a scriptet megjegyzi a CMD es nem irja felul a kimenetet. Hogy lehet ezt flusholni?

Koszi

Hozzászólások

megjegyzi a CMD es nem irja felul a kimenetet

mit jegyez meg a cmd?
kinek kéne milyen kimenetet felülírni?

egyébként meg:


findstr /v "^Net" | findstr /v "^$" | findstr /n /r "." | findstr /r "^1:"

igaz, benne lesz a sorszám is. nemtom, az baj-e?

~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack

Jobb lenne sorszam nelkul, de szerintema temporary file-os megoldas lesz a szimpatikus. Bar nem tudom hol keletkezik az a file, de nem talalom sehol :)

A mit jegyez meg a cmd:

Amikor lefuttatom a szkriptet, akkor a kovetkezo lefuttatasnal is az elozo eredmenyet adja vissza. Powershellben jo, de sima cmd-ben az elozot adja vissza.

Ha temp file mehet, akkor az első sort pl így lehet kinyerni:


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

set-tel nem fog menni, mert a valtozo kifejtese, plusz pipeolas nem erossege a windowsnak.
annelkul viszont megy:

FOR /F "delims=" %%A IN ('wmic nic where "NetConnectionStatus=2" get netconnectionid ^|findstr "Net"') DO (
SET TEMPVAR=%%A
GOTO :Print
)

:Print
ECHO %TEMPVAR%

ha ennyire batchelsz, lehet hogy a SETLOCAL EnableDelayedExpansion -is kelleni fog. tedd el jobb napokra, amikor nem erted miert nem valtozik a valtozo