1

У меня есть пакетный файл (run.bat), который должен изменить настройки моего IP-адреса:

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

Команда работала, как я и ожидал, когда я набираю ее непосредственно в командной оболочке cmd , но не когда я помещаю ее в run.bat (который я запускаю с правами администратора).

Как это исправить?

2 ответа2

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
1

Вам нужно поместить всю команду в одну строку, чтобы она передавалась в исполняемый файл netsh .

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

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