在純批次環境下,利用 ping 指令搭配字串剖析,從電腦名稱 (NetBIOS/DNS) 取得 IPv4 位址,無需 PowerShell 或外部工具。
@echo off
set "pcName=YourTargetComputerName" rem 修改為目標電腦名稱
rem 先 ping 一次觸發 DNS/NetBIOS 解析
ping %pcName% -4 -n 1 >nul
rem 解析輸出取得 IP
for /f "tokens=2 delims=[]" %%i in ('ping %pcName% -4 -n 1 ^| findstr %pcName%') do set "ip=%%i"
rem 處理可能的尾隨字元 (如 "]")
set "iptmp=%ip:~0,15%"
set "lastchar=%iptmp:~-1%"
if "%lastchar%"=="]" set "iptmp=%ip:~0,14%"
echo 解析結果 IP: %iptmp%
pause
ping -4 強制使用 IPv4,避免 IPv6 干擾解析邏輯。findstr %pcName% 過濾包含電腦名稱的那一行 (通常為 Pinging XXX [IP]... 格式)。tokens=2 delims=[] 以 [ 和 ] 為分隔符,取第 2 欄位即為 IP。%var:~start,length% 處理尾隨 ]。set /p pcName=請輸入電腦名稱: 互動式輸入。%iptmp% 傳遞給後續指令 (如 psexec \\%iptmp% ...、mstsc /v:%iptmp%)。:GetIP pcName ipVar 供多處呼叫。