无法在批处理文件中运行控制台程序

无法在批处理文件中运行控制台程序

我有一个批处理文件(run.bat),用于更改我的 IP 地址设置:

netsh
interface
ip
set address "lan" static 192.168.30.77 255.255.255.0 192.168.30.2

当我直接在 shell 中输入该命令时,该命令按我预期的方式工作cmd,但是当我将其输入run.bat(以管理员权限运行)时,该命令不起作用。

我该如何解决?

答案1

当您netsh在命令提示符 ( cmd) 提示符下键入时,您开始运行该netsh.exe程序。接下来的三行是该程序的输入,并由该程序读取和处理。

cmd不允许在.BAT文件中出现此类内容。但您可以执行以下解决方法来使netsh相关命令 输入至netsh

(echo interface & echo ip & echo set address "lan" static 192.168.30.77 255.255.255.0 192.168.30.2) | netsh

为了使脚本更具可读性,请用以下行分隔长行^

(echo interface & echo ip & echo set address "lan" ^
  static 192.168.30.77 255.255.255.0 192.168.30.2) | netsh

答案2

您需要将整个命令放在一行上,以便将其传递给netsh可执行文件。

netsh interface ip set address "lan" static 192.168.30.77 255.255.255.0 192.168.30.2

相关内容