2

Хорошо, так что я поиграл с изменением размера MTU и хотел создать командный файл, чтобы автоматически уменьшить его, а затем поднять его позже.
Это, вероятно, просто, но я просто не могу понять это. Суть в том, есть ли способ запустить команду, которая обычно выдает "ок", но проверит, если она говорит "ок"? И если это не говорит хорошо тогда, чтобы закончить остальную часть файла от запуска и выйти.
Я использую команду netsh interface ipv4 set subinterface "Local Area Connection" mtu=386 store=persistent которая, как я упоминал выше, печатает OK. Я просто хочу проверить, правильно ли он работает, а если нет, то сделайте ______

2 ответа2

2

Если netsh успешен, он вернет уровень ошибки 0 (как и большинство утилит командной строки), что по сути означает "Нет ошибок".

Таким образом, вы должны иметь возможность использовать командную строку if и errorlevel для выполнения проверки в командном файле. Что-то вроде:

@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!
0

Простой ответ состоит в том, чтобы передать вывод через 'grep' и проверить вывод 'grep':

Интерфейс netsh ipv4 set subinterface "Подключение по локальной сети" mtu = 386 store = persistent | grep OK || выход 1

Обычно, если есть ошибка, программа также возвращает ненулевой код завершения (то же самое, что и «grep», если он не найдет текст, который вы ищете в приведенном выше случае). Я не знаю, будет ли netsh делать это, но вы, вероятно, можете проверить, введя в него некоторые недопустимые значения (например, 1000000000000). Если это так, вы можете сделать что-то немного проще:

Интерфейс netsh ipv4 set subinterface "Подключение по локальной сети" mtu = 386 store = persistent || выход 1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .