2016-04-16 4 views
1

Ich schreibe ein einfaches Skript, um meine Localhost-Adresse als IP zurückgegeben.Windows7 Batch, wie nach dem ersten zu brechen For-Schleife

Zu meiner IPv4-Adresse (Win7) ich geschrieben habe einfach FOR-Schleife, aber als Ergebnis bekomme ich die IP von letzter Schleife statt ersten. Hier

ist die Chargennummer:

cls 
for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do (
    set ip=%%b 
) 
set ip=%ip:~1% 
echo %ip% 

dies zurück:

(set ip= 192.168.1.101) 
(set ip= 192.168.88.1) 
(set ip= 192.168.137.1) 
set ip=192.168.137.1 
echo 192.168.137.1 
192.168.137.1 

Was ich brauche, ist das Ergebnis der ersten Schleife:

192.168.1.101 
+1

Nach dem 'Set' Befehl in der Schleife, place' goto: SKIP'; Setzen Sie das Etikett ': SKIP' nach dem Schließen') 'der Schleife ... – aschipfl

+0

Ja, es erfordert hinzufügen: SKIP-Label direkt nach der Schleife und hat den Job :-) –

Antwort

1

Und was ist mit diesem Code ohne irgendeine Schleife?

@Echo off 
For /f "tokens=2 delims= " %%a in ('arp -a ^|findstr /i "Interface"') do (set IP=%%a) 
Echo The IP adress is : %IP% 
pause 
+0

Getestet - arbeiten. Da @aschipfl auch eine Lösung vorgeschlagen hat, ist deine kürzere, ich werde es als akzeptiert markieren, danke! –

1

auch Code mit @aschipfl :SKIP Lösung

for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do (
    set ip=%%b 
    goto :SKIP 
) 
:SKIP 
set ip=%ip:~1% 
echo %ip% 
Verwandte Themen