我有一个名为 run.bat
的小命令行我想用这样的命令更改我的 IP 地址设置
运行.bat
:: netsh interface ipv4
netsh
interface
ip
:: Change ip address
set address "Ethernet" static 192.168.30.77 255.255.255.0 192.168.30.2
当我直接在 CMD 中输入时,该命令按我的预期工作,但当我将其放入 run.bat 时则不起作用 我确信我已经使用管理员访问权限运行了它
它可以在命令行上工作,因为您启动
netsh
(查看提示符如何变化),然后直接与 netsh
程序交互(您最终应该 exit
)。它在批处理文件中不起作用,因为它执行第一个命令 netsh
- 并等待直到完成(当您键入 exit
时就会发生)。然后你的批处理文件尝试执行下一行,但是 ip
不是有效的命令...
但是
netsh
还有一种“直接模式”:只需输入一行:netsh interface ip set address "Ethernet" static 192.168.30.77 255.255.255.0 192.168.30.2
(在批处理文件和命令行中都可以使用)
关于通过批处理脚本设置 DNS 服务器的问题 - 当您使用 netsh 设置 DNS 服务器时,它会尝试验证它。由于某种原因,此验证过程在命令提示符中执行时工作正常,但在批处理脚本中失败。
如果您确定服务器正确,您可以使用“validate=no”参数绕过验证检查,只需将其添加到命令末尾,如下所示:
netsh interface ip set dnsservers name="lan" static 192.168.30.2 validate=no
netsh interface ip add dns name="lan" 8.8.8.8 index=2 validate=no