2017-07-07 4 views
0

Je souhaite obtenir la première ligne uniquement à partir de la sortie de commande suivante dans Windows pe. Voir ci-dessous:Tête -1 dans le fichier de commandes Windows

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

Sélectionnez -First serait une option, mais cela ne fonctionne pas. Je ne connais pas trop Windows, je connais Linux. Comment puis-je obtenir uniquement la première ligne de la sortie?

Si c'est possible sans findstr encore mieux.

+1

double possible de [Comment puis-je obtenir la première ligne de la sortie pour la commande donnée dans dos] (https://stackoverflow.com/questions/ 13601015/how-i-get-the-first-line-of-the-output-for-given-command-in-dos) –

+1

Cela devrait fonctionner si vous pouvez me dire comment insérer dans la COMMANDE la commande suivante : wmic nic où "NetConnectionStatus = 2" obtient netconnectionid | findstr/v "^ Net" | findstr/v "^ $", il se plaint du | même si je m'en échappe. – Badb0y

Répondre

0

Comment obtenir la première ligne est décrit here at SO. Mais vous devez échapper à ^ et les caractères | comme il est dit dans this guide.

Ce qui suit snipped fonctionnera:

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

Je pense que le dernier tuyau à findstr /v "^^$"" est inutile.

0

Enfin un fichier temporaire peut aider le mieux:

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