我是批处理脚本的初学者。我遇到的问题是我可以通过ping其IP地址从我的LAN中检索计算机名称(请参阅下面的代码)。但是,在使用计算机名称时,我很难找到一种同样简单的方法来获取网络上计算机的IP地址。据我所知,ping计算机名称只提供MAC ID但不提供IP。
我需要此功能的原因是我正在编写的小批量脚本,它会提示用户输入用于消息传递(msg.exe)的IP或计算机名称。后续配置(TTL检查和注册表项更改)明确要求其中一个。
@echo off
for /f "tokens=1,2" %%a in ('ping -a 192.168.1.33 ^| find "Pinging"') do set compname=%%b >nul
echo Computer name is %compname%
echo.
pause
答案 0 :(得分:0)
感谢SomethingDark解决方案:
@echo off
for /f "tokens=1,2 delims=[]" %%a in ('ping -4 COMPNAME ^| find "Pinging"') do set ipaddress=%%b >nul
echo COMPNAME IP address is %ipaddress%
echo.
pause
事实上,向我展示了选项:
ping -4
我可以找到" TTL ="通过以这种方式ping计算机名称。因此,我不再需要将计算机名转换为IP地址,这将使我的最终脚本更短。谢谢!