![无法使用命令快捷方式设置 DNS](https://linux22.com/image/1590359/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E5%BF%AB%E6%8D%B7%E6%96%B9%E5%BC%8F%E8%AE%BE%E7%BD%AE%20DNS.png)
我正在尝试使用命令提示符为网络适配器设置 DNS(主 DNS 和辅助 DNS)。因此,我使用以下命令创建了一个 Windows 快捷方式:
C:\Windows\System32\netsh.exe interface ipv4 add dnsservers "Ethernet" address=8.8.8.8 index=1 & C:\Windows\System32\netsh.exe interface ipv4 add dnsservers "Ethernet" address=8.8.4.4 index=2
但不知为何它不起作用(也没有给出任何错误)。如果我直接在命令提示符中执行此命令,它就可以正常工作!不用说,我以管理员身份运行快捷方式,因此不存在任何权限问题。但是,我不知道是什么问题。我是不是漏掉了什么?
任何帮助都将不胜感激。谢谢!
答案1
命令&
分隔符是一个功能Cmd.exe 解释器– 它不适用于在 Windows 中启动程序。其他启动程序的方式(本例中为 ShellExecute)不理解任何 Cmd 特定的语法,只是将所有内容作为一个命令运行,并使用 & 作为普通参数。
(这与 Linux 中的工作方式非常相似,许多此类事情都由 shell 进行解释。)
要运行两个命令,请
a) 将它们都放入脚本文件 (.bat/.cmd) 中并为该脚本创建快捷方式,或者
b)调用 Cmd 并要求它解释命令行:
cmd /c "netsh this & netsh that"