não pode executar o programa de console no arquivo em lotes

1

Eu tenho um arquivo de lote ( run.bat ) que é para alterar minha configuração de endereço IP:

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

O comando funcionou como eu esperava quando eu o digitei diretamente em um cmd shell, mas não quando eu o coloquei em run.bat (que eu corri com acesso de administrador).

Como corrijo isso?

    
por Joni Svr 24.04.2016 / 06:40

2 respostas

1

Quando você digita netsh no prompt Prompt de Comando ( cmd ), você começa a executar o programa netsh.exe . As próximas três linhas são inseridas nesse programa, e são lidos e processados por esse programa.

cmd não está configurado para permitir esse tipo de coisa em um arquivo .BAT . Mas você pode fazer a seguinte solução alternativa para tornar os comandos netsh relacionados Entrada be para netsh :

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

Para tornar seu script mais legível, divida a linha longa com ^ :

(echo interface & echo ip & echo set address "lan" ^
  static 192.168.30.77 255.255.255.0 192.168.30.2) | netsh
    
por 24.04.2016 / 09:55
1

Você precisa colocar o comando inteiro em uma linha para que seja passado para o executável netsh .

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

    
por 24.04.2016 / 10:37