2017-02-13 50 views
1

我想找到正確的方式從網絡服務器提取以下IP地址,但我無法返回只是IP地址。如何提取以下蝙蝠文件的IPv4

從理論上講,如果我有一個1111s1作爲服務器,我應該可以抓住一個IP地址,但我仍然沒有收到答案。有人能幫我指出這部分嗎?我對Variable Concepts仍然陌生。


@echo off 
:SETUP_PRINTER 
cls 
mode con: cols=65 lines=30 
echo. 
echo -------------------------- 
echo.  Printer Setup 
echo -------------------------- 
set /p SPrnt=Name of Place: 
echo. 
FOR /F "tokens=2,3" %%A IN ('ping "%SPrnt%s1" -n 1 -4') DO IF "from"=="%%A" set "IP=%%~B" 
echo. %IP% 
echo. 
echo. Printer IPs: 
echo. 
echo. .30 - Test  .37 - Test 
echo. .31 - Test  .38 - Test 
echo. .32 - Test  .39 - Test 
echo. .33 - Test  .40 - Test 
echo. .34 - Test  .41 - Test 
echo. .35 - Test  .42 - Test 
echo. .36 - Test  .43 - Test 
echo. .23 - Test  .61 - Test 
echo. .24 - Test 
echo. 
pause 
goto MAINMENU 

Attempted Failure When Tested

+0

[不要把代碼和文本在這裏輸出圖像(http://meta.stackoverflow.com/q/303812/995714) 。複製並粘貼它們而不是 –

回答

0

得到DNS解析,而不是地址

for /f "tokens=2 delims=[]" %%a in ('ping -n 1 -4 "%SPrnt%s1"') do @echo %%a 

「從回答」 如果你ping主機名,你喜歡的東西:

Ping wird ausgeführt für hostname [192.168.100.153] mit 32 Bytes Daten: 

(語言可能會改變,但語法..... [aaa.bbb.ccc.ddd] .....總是相同)

for /f環獲得第二令牌(因爲分隔符,第一個記號是[任何事情之前,第二令牌裏面[什麼和],第三個標記就是]之後的任何標記),所以第二個標記就是所需的IP地址。

請參閱for /f瞭解更多詳情。

+0

嗨Stephan, 你可以偶然的解釋你的過程嗎?我仍然不理解這個概念。 =) – Greg

0

您可能需要使用NSLookUp,而不是Ping

For /F "Skip=1 Tokens=2" %%A In ('NSLookUp 1111s1 2^>Nul' 
) Do If Not Defined IP Set "IP=%%A" 
+0

給我的服務器的IP,而不是我的實際PC。 – Stephan

+0

@Stephan,這正是我所要求的。 IP地址歸屬於名稱爲1111s1的打印機/服務器。 – Compo

+0

'nslookup'給我'服務器','地址','姓名','地址'。你的方法報告第一個地址(服務器),但我們需要'Name'的地址(給定主機名) – Stephan