我有一个在网络上运行的脚本,VPN 与 LAN 环境相同。
该脚本之前运行良好,因为我们有存储管理员用户名和密码的变量。然而,由于最近的变化,当我们通过网络映射驱动器时,机器名称现在需要在管理员用户名前面,例如机器名 2343\管理员
。
我想做的是使用一个现有的命令——比如 nbtstat——并在输入 ip 地址后,让程序提取机器名并将其插入到一个变量中。
我发现 Nbtstat 可以给我机器名,但为我的任务提供了大量不必要的信息。有没有办法以可靠和一致的方式过滤掉机器名称,或者是否有另一个以相同容量执行的网络相关命令?
`@echo offFOR /f "tokens=1* delims= skip=23 " %%a IN ('nbtstat -a IPADDRESS) DO ( SET VARIABLE=%%a GOTO Done ) :Done echo Computer name: %VARIABLE%`
最佳答案
您可以执行 ping/a
。计算机名称已解析。而这个计算机名就是第二个 token 。我没有注意错误检查。我相信你可以自己实现。
试试这个:
@ECHO OFF
FOR /f "tokens=2* delims= " %%a IN ('PING -a -n 1 IPADDRESS') DO (
SET Variable=%%a
GOTO Done
)
:Done
echo Computer name: %Variable%
将其放入您的批处理文件中合适的位置。
关于Windows:获取机器名称并将其存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4611734/