检查命令结果是否显示 OK 的命令是什么?

检查命令结果是否显示 OK 的命令是什么?

好吧,所以我正在尝试更改 MTU 大小,并想制作一个批处理文件来自动降低它,然后稍后再提高它。
这可能很简单,但我就是想不通。关键是,有没有办法运行一个命令,它通常会回显“ok”,但检查它是否确实说 ok?如果它没有说 ok,那么就结束文件的其余部分运行并退出。
我使用的命令是netsh interface ipv4 set subinterface "Local Area Connection" mtu=386 store=persistent,正如我上面提到的,它会打印出 OK。我只是想检查它是否运行正确,如果没有,那么就做 ______

答案1

如果 netsh 成功,它将返回错误级别 0(大多数命令行实用程序都是如此),本质上意味着“无错误”。

因此,您应该能够使用命令行iferrorlevel在批处理文件中完成检查。例如:

@echo off
netsh interface ipv4 set subinterface "Local Area Connection" mtu=386 store=persistent
if errorlevel 0 goto END

:ERRORHANDLER
echo Error Detected - do stuff to fix it.
goto END

:END
echo Done!

答案2

简单的答案是通过“grep”管道传输输出并测试“grep”的输出:

netsh 接口 ipv4 设置子接口“本地连接”mtu=386 store=persistent | grep OK || 退出 1

通常,如果出现错误,程序也会返回非零退出代码(与上述情况下“grep”在未找到您要搜索的文本时所做的相同)。我不知道 netsh 是否会这样做,但您可以通过输入一些非法值(如 1000000000000)进行测试。如果是这样,您可以做一些稍微简单的事情:

netsh 接口 ipv4 设置子接口“本地连接”mtu=386 store=persistent || 退出 1

相关内容