2015-10-26 2 views
0

Как я могу сократить выход этой команды.Как исключить некоторый текст в echo

nslookup myip.opendns.com resolver1.opendns.com > %~d0\bat\setup\ipaut\myip.txt 

Это дает мне текстовый файл:

Server: resolver1.opendns.com 
Address: 208.67.222.222 

Name: myip.opendns.com 
Address: 84.48.190.45 

То, что я на самом деле хочу в текстовом файле адрес myip.opendns.com. Пример

84.48.190.45 
+0

Будет ли оно всегда находиться в том же положении в файле, или, возможно, другой адрес opendns, возможно, на первом месте? – SomethingDark

+0

Да. Но адрес динамичен. –

ответ

2
@echo off 
setlocal EnableDelayedExpansion 

set "var=" 
for /F "tokens=2 delims=: " %%a in ('nslookup myip.opendns.com resolver1.opendns.com') do (
    if not defined var (
     set "var=%%a" 
    ) else (
     set "!var!=%%a" 
     set "var=" 
    ) 
) 

echo %myip.opendns.com%> output.txt 
+0

Извините. Из этого вопроса SomethingDark: «Будет ли он всегда находиться в том же положении в файле, или другой адрес opendns, возможно, иногда появляется первым?» и ваш ответ, я предположил, что текст, который вы хотите, может изменить свою позицию в файле, поэтому мое решение управляет этим случаем. Ответ Squashman всегда возвращает последнюю строку в файле. Может, я что-то не понял? – Aacini

+0

Танк для комментария. Это очень хороший момент. Исправленный ответ. –

1
FOR /F "tokens=2 delims=: " %%G in ('nslookup myip.opendns.com resolver1.opendns.com') do >myip.txt echo %%G 

Это анализирует выходной сигнал NSLookup команды и выводит результат в текстовый файл.

+0

Хорошо работает! Танки! –

Смежные вопросы