【发布时间】:2015-05-16 07:51:15
【问题描述】:
我是批处理脚本的初学者。我遇到的问题是,我可以通过 ping 其 IP 地址从 LAN 中检索计算机名称(请参见下面的代码)。但是,在使用计算机名称时,我正在努力寻找一种同样简单的方法来获取网络上计算机的 IP 地址。据我所知,ping 计算机名称仅提供 MAC ID,但没有 IP。
我需要这个函数的原因是我正在编写一个小批量脚本,它提示用户输入 IP 或计算机名称以用于消息传递 (msg.exe) 目的。后续配置(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
【问题讨论】:
-
请立即弄清楚一件事:批处理脚本不是 MS-DOS。仅仅因为它们是黑色背景上的白色文本并不意味着它是 DOS。 DOS 已经好几代没有包含在 Windows 中了。批处理文件在命令解释器下运行。
-
谢谢,我已经在这个错误的想法下苦苦挣扎了一段时间了。我已经相应地编辑了我的问题。我会在我的个人资料中这样做。
-
这是一个常见的误解,所以不要难过。但它非常需要被打破。
-
绝大多数的DOS命令也是批量存在的。 64 位操作系统无法使用
debug命令,并且批处理中有几个不在 DOS 中的新命令(例如,for命令的各种标志),但总的来说它们'基本相同。 -
另外,ping 不应该返回 MAC 地址。你确定它不仅仅是一个 IPv6 值吗?试试
ping -4看看是否会产生您想要的结果。
标签: batch-file ip computer-name