[英]How to use ping command as a variable to be used as breaking condition in a batch file?
[英]getting ip from ping command and storing in batch file variable
正在尋找一種方法來獲取網絡上另一台計算機的 IP 地址。 在另一個線程中找到了這個優秀的代碼:
for /f "tokens=2 delims=[]" %f in ('ping -4 -n 1 piratelufi.com ^|find /i "pinging"') 回顯 %f
但是,我有兩個問題:
想知道是否有人知道修改它的方法,所以我在 CMD 文件中運行此代碼並獲取 IP 以用於另一個命令?
謝謝!
嘗試這個。 有兩個設置的 PCName 行,您可以 REM 出一個和 un-REM 另一個,以查看它提供了不同的 IP。
@ECHO OFF
SET "PCName=piratelufi.com"
REM SET "PCName=google.com"
FOR /F "tokens=2 delims=[]" %%F IN ('PING -4 -n 1 %PCName%') DO SET "PCIP=%%F"
ECHO {%PCIP%}
編輯:感謝 Stephan 指出FIND
沒有做任何有價值的事情,實際上是在創建不必要的依賴項。 PING
僅生成與tokens=2 delims=[]
匹配的一行,導致僅執行一次DO
。 上面的腳本現在已經刪除了FIND
。 {我不檢查原始代碼是什么,不是做什么,這很糟糕。}
在這個批處理腳本中:我們可以從 ping 結果中提取 IP,如果您想每分鍾檢查一次 state,我們可以添加一個循環!
@echo off
set "Link=piratelufi.com"
Title Ping Tester for "%Link%"
:MainPing
set "state="
setlocal enableextensions enabledelayedexpansion
@for /f "tokens=2 delims=[]" %%b in ('ping -4 -n 1 !Link!') do set "ip=%%b"
ping -n 1 !Link!>nul && set "state=UP" || set "state=Down"
)
:Myloop
echo. %date% %time% [!Link!] [!ip!] Link is !state!
Timeout /T 60 /NoBreak>nul & goto MainPing
endlocal
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.