Sunteți pe pagina 1din 29

Como criar um arquivo .

BAT para
colocar IP fixo ou automtico no
Windows
Por Luiz Otvio na categoria Tutoriais Diversos em 17/11/2011 s 00:04:10

Para pessoas que modificam seu IP com frequncia: Tutorial mostra como criar um
arquivo .BAT (Batch ou arquivo de lote) para colocar IP fixo ou automtico no
Windows com "Choice".

Se voc uma dessas pessoas que fica mudando de redes a todo momento, este tutorial
vai ser muito til para agilizar a sua vida. Vou explicar como criar um arquivo .BAT
que modifica seu IP para Fixo (definido pelo usurio) ou automtico (obtido via DHCP)
de uma determinada placa de rede do seu computador (interface).

O arquivo ter trs opes: "FIXO", "AUTOMATICO" e "CANCELAR", resumidas


com as letras "F, A e C" com o comando "Choice" do Windows.

Neste tutorial vou fazer a juno de dois outros tutoriais j publicados aqui no TEO:

Como colocar opes em arquivos .BAT


Como alterar seu IP por linha de comando no Windows 7 e 8 (Prompt de
Comando)

O primeiro ser utilizado para criar o arquivo .BAT propriamente dito e o segundo para
colocar IP via linha de comando no seu Windows, veja como fazer no tutorial a seguir.

Criando um arquivo .BAT

Passo 1: Para criar o seu arquivo de lote utilize os passos 1 e 2 do artigo Como colocar
opes em arquivos .BAT.

Em seguida clique com o boto direito do mouse sobre o mesmo e selecione a opo
"Editar" para cair novamente no Bloco de notas.

Iniciando o Script

Passo 2: Agora vamos remover a exibio de comandos, para isso digite @echo off na
primeira linha do seu arquivo.
Passo 2: Agora vamos criar algumas variveis para ficar fcil de editar quando
necessrio. As variveis sero sobre a interface (nome da placa de rede), o ip, mscara
de subrede, gateway e dns (se no for automtico).

Ento digite as linhas no seu arquivo:

set INTERFACE=NOME DA INTERFACE


set IP=SEU IP FIXO
set MASCARA=MSCARA DE SUBREDE
set GATEWAY=O GATEWAY
set DNS=O DNS

Como voc pode perceber, as variveis acima precisam ser modificadas com as valores
reais, por exemplo, o nome da interface que deseja editar "rede", meu IP local
192.168.0.100, a mscara de subrede 255.255.255.0, o gateway 192.168.0.1 e o
DNS tambm 192.168.0.1, ento minhas variveis ficaram assim:

set INTERFACE=rede
set IP=192.168.0.100
set MASCARA=255.255.255.0
set GATEWAY=192.168.0.1
set DNS=192.168.0.1
Para saber o nome da sua conexo e as demais configuraes necessrias, siga os passos
do subttulo Descobrindo o nome de sua conexo de rede do tutorial Como alterar seu
IP por linha de comando no Windows 7 e 8 (Prompt de Comando).

Passo 3: Agora criamos o comando "Choice" com as trs opes.

choice /C FAC /M "Pressione: [F]ixo, [A]utomatico ou [C]ancelar"

O comando acima cria trs escolhas para o usurio (F, A ou C), seguido de /M que
possibilita a incluso de uma mensagem na tela do usurio.

Passo 4: Agora vamos para nossas condies, ou seja, se o usurio escolher a opo 1,
faz alguma coisa, 2 faz outra e trs cancela. Ento digite as linha abaixo no seu arquivo.

IF errorlevel=3 goto FIM


IF errorlevel=2 goto AUTOMATICO
IF errorlevel=1 goto FIXO
Passo 5: Como voc pode perceber, nas nossas condies indicamos para o script ir
para determinada sesso com o comando "goto" (v para), ento agora vamos criar estas
sesses a seguir.

:FIXO
netsh interface ip set address name="%INTERFACE%" static %IP%
%MASCARA% %GATEWAY%
netsh interface ip set dnsservers name="%INTERFACE%" static %DNS%
primary no
goto :FIM

Criamos a sesso fixo que seta o IP, Mscara, Gateway e DNS na placa de rede
selecionada, ao final da sesso estamos enviando o script para uma outra sesso que no
existe (FIM) com o comando goto :FIM. Esta sesso ter apenas um exit para sair.

A prxima sesso a ser criada ser a "AUTOMTICO" (no utilize acentos no prompt),
ento veja como fica:

:AUTOMATICO
netsh interface ip set address name="%INTERFACE%" dhcp
netsh interface ip set dnsservers name="%INTERFACE%" dhcp
goto :FIM

Se voc pressionar a opo "A" no prompt, sua placa de rede ir obter IP, Mscara,
Gateway e DNS automaticamente. Agora vamos criar a sesso "FIM".

:FIM
exit

A mais simples de todas, simplesmente "Exit" para sair.

Como ficou o script completo


@echo off
set INTERFACE=rede
set IP=192.168.0.100
set MASCARA=255.255.255.0
set GATEWAY=192.168.0.1
set DNS=192.168.0.1
choice /C FAC /M "Pressione: [F]ixo, [A]utomatico ou [C]ancelar"
IF errorlevel=3 goto FIM
IF errorlevel=2 goto AUTOMATICO
IF errorlevel=1 goto FIXO
:FIXO
netsh interface ip set address name="%INTERFACE%" static %IP%
%MASCARA% %GATEWAY%
netsh interface ip set dnsservers name="%INTERFACE%" static %DNS%
primary no
goto :FIM
:AUTOMATICO
netsh interface ip set address name="%INTERFACE%" dhcp
netsh interface ip set dnsservers name="%INTERFACE%" dhcp
goto :FIM
:FIM
exit

Como ele funciona?

Ao rodar este script com privilgios administrativos (boto direito do mouse / Executar
como administrador):
O prompt ir perguntar a opo que deseja que seja executada:
Se voc pressionar "F", o IP que voc escolheu ser configurado na sua placa de rede;

Se voc pressionar "A", sua conexo ser modificada para obter IP automaticamente:
Caso escolha "C", a janela fechada sem fazer nada.

Download

Caso queira baixar este arquivo, utilize o link abaixo:

Download ip_teo.bat

Nota: Modifique apenas as variveis, como descrito neste tutorial.


Z Do Galo h 2 anos

e se eu quiser alterar o wins e o dns alternativo como fao?

1

Responder

Partilhar

o
o
o


o
o

Luiz Otvio Miranda Figueiredo Moderador Z Do Galo h 2 anos

Ol Z do Galo, o seguinte, basta adicionar "index=2" no final do comando.


Exemplo:

netsh interface ip add dns "Ethernet" 8.8.8.8 index=2

Altere Ethernet para o nome da sua conexo de rede e 8.8.8.8 para o DNS
desejado.

o 1
o
o Responder
o
o Partilhar



o
o


Joo Lucas Costa Luiz Otvio Miranda Figueiredo h 2 anos

S para completar o que o Luiz Otvio disse, voc deve primeiramente


remover os IPs da placa de rede, ou seja, utilizar DHCP, caso contrrio o
seu DNS no ser alterado.

O primeiro comando deve ser:

netsh interface ip set address name="Ethernet" dhcp


netsh interface ip set dnsservers name="Ethernet" dhcp

O Comando completo ficaria:

netsh interface ip set address name="Ethernet" dhcp


netsh interface ip set dnsservers name="Ethernet" dhcp
netsh interface ip set address name="Ethernet" static
192.168.2.200 255.255.255.0 192.168.2.1
netsh interface ip add dns "Ethernet" 192.168.2.1
netsh interface ip add dns "Ethernet" 8.8.8.8 index=2

Altere Ethernet para o nome da sua conexo.



 Responder

 Partilhar





Bozo Krusty from Hell h 9 dias

Esse o que funciona


@ECHO OFF
set INTERFACE=Conexo Local
set IP=192.168.3.30
set MASCARA=255.255.255.0
set GATEWAY=192.168.3.2
set DNS1=8.8.8.8
set DNS2=8.8.4.4
REM ***** You dont need to change anything below this line! ******

ECHO Setting IP Address, Subnet Mask and Gateway


netsh interface ip set address name = %INTERFACE% source = static addr = %IP%
mask = %MASCARA% gateway = %GATEWAY% gwmetric = 1

ECHO Setting Primary DNS


netsh int ip set dns name = %INTERFACE% source = static addr = %DNS1%

ECHO Setting Secondary DNS


netsh int ip add dns name = %INTERFACE% addr = %DNS2%

ECHO Here are the new settings for %computername%:


netsh int ip show config

pause



Responder

Partilhar

o
o
o

italo h um ms

instantneo mudo o ip e caio da rede n funciona para quem tem net roteada



Responder

Partilhar

o
o
o

Fabrcio Reis h 2 meses

Situao curiosa: Testei as linhas de comando com as alteraes necessrias para a


minha mquina e inserindo diretamente no prompt, o que funcionou. Contudo, ao tentar
executar o arquivo bat oferecido, retornou erro de sintaxe ("A sintaxe do nome do
arquivo, do nome do diretrio ou do rtulo do volume est incorreta."). Testei
simplificar em um novo bat copiando as linhas digitadas no prompt ("netsh interface ip
set address name="Conexo Local" static 192.168.1.101 255.255.255.0 192.168.1.1 1"
e netsh interface ip set address name="Conexo Local" dhcp), mas resultou na mesma.
Ento questiono, h alguma diferena entre executar alguns desses comandos no prompt
e no arquivo lote?

ver mais


Responder

Partilhar

o
o
o

mateus rocha Medrado h 5 meses


No meu caso preciso adcionar um ip e mascara e mais um ip e mascara na guia
avanado. Como eu faria ? Seria possivel com um bat somente ?



Responder

Partilhar

o
o
o


o
o

Luiz Otvio Miranda Figueiredo Moderador mateus rocha Medrado h 5 meses

Oi amigo, criei um tutorial esses dias sobre isso, mas esqueci de atualizar o
artigo... Segue o link:

railton costa viral filho h 6 meses

boa tarde galera montei aqui de acordo com o meu cp e no fuiciona

@echo off

set INTERFACE=Conexo local

set IP=172.16.71.100

set MASCARA=255.255.255.0

set GATEWAY=172.16.71.1

set DNS=172.16.71.1

choice /C FAC /M "Pressione: [F]ixo, [A]utomatico ou [C]ancelar"

IF errorlevel=3 goto FIM

IF errorlevel=2 goto AUTOMATICO


IF errorlevel=1 goto FIXO

FIXO

netsh interface ipv4 set address name="Conexo local" static 172.16.71.88


255.255.255.0 172.16.71.1

netsh interface ipv4 set dnsservers name="Conexo local" static 172.16.71.1 primary no

goto :FIM

AUTOMATICO

netsh interface ipv4 set address name="Conexo local" dhcp

netsh interface ipv4 set dnsservers name="Conexo local" dhcp

goto :FIM

FIM

exit

ver mais


Responder

Partilhar

o
o
o

Andrey Fortes h 8 meses

Preciso de um .bat que exiba apenas o nome do computador e o IP e nada mais. O nome
do PC j consegui, mas o do IP estou com problemas, encontrei na internet alguns
exemplo que exibem todas as informaes da rede, no s o IP.
H algum comando que faa o arquivo exibir somente o IP?



Responder

Partilhar

o
o
o

Tyesko Emuriel h um ano

Galera o meu deu certo, windows 7 ultimate


apenas lembrando eu apanhei muito pois no colocava o nome da minha rede certa.
ai fui las configuraes de rede e mudei o nome dela pra wifi como esta no cdigo a
baixo ai funcionou legal. haha! :)
qualquer duvida ai em baixo esta meu e-mail.

@echo off

::------------------------------------------------

::------------------------------------------------

::--------- PROGRAMADOR: TYESKO EMURIEL -------

::--------- EMAIL: tyesko@live.com -------

::--------- DATA: 21/05/2014 as 10:10 A.M -------

::------------------------------------------------

::------------------------------------------------

set INTERFACE=wifi

set IP=1.1.1.124

set MASCARA=255.255.255.0

set GATEWAY=1.1.1.1

set DNS=200.175.182.139
choice /C FAC /M "Pressione: [F]ixo, [A]utomatico ou [C]ancelar"

IF errorlevel=3 goto FIM

IF errorlevel=2 goto AUTOMATICO

IF errorlevel=1 goto FIXO

:FIXO

netsh interface ip set address name="%INTERFACE%" static %IP% %MASCARA%


%GATEWAY%

netsh interface ip set dnsservers name="%INTERFACE%" static %DNS% primary no

netsh interface ip add dns "%INTERFACE%" 200.175.5.139 index=2

goto :FIM

:AUTOMATICO

netsh interface ip set address name="%INTERFACE%" dhcp

netsh interface ip set dnsservers name="%INTERFACE%" dhcp

goto :FIM

:FIM

exit

ver mais


Responder

Partilhar

o
o
o


o
o
Tyesko Emuriel Tyesko Emuriel h um ano

galera e s salvar como .bat e alterar o nome wifi para o nome da sua conexo de
rede.
no meu caso ta wifi porque eu mudei o nome da minha conexo!

o
o
o
o Responder
o
o Partilhar



o
o


Tyesko Emuriel Tyesko Emuriel h um ano

print




 Responder

 Partilhar





Oziel Alves h 2 anos

Opa, fiz o procedimento mas na maquina qd executo o batda o seguinte erro:

Interface invlida rede especificada.

O seguinte comando no foi encontrado: interface ip set dnsservers name=rede dhc

como posso resolver isso? obrigado!



Responder

Partilhar

o
o
o


o
o

Luiz Otvio Miranda Figueiredo Moderador Oziel Alves h 2 anos

Qual seu sistema operacional? E qual a verso dele?

o
o
o Responder
o
o Partilhar



o
o



Oziel Alves Luiz Otvio Miranda Figueiredo h 2 anos

no momento estou usando o windows server 2003



 Responder

 Partilhar








Luiz Otvio Miranda Figueiredo Moderador Oziel Alves h 2


anos

Bom, no tenho esse sistema para testar aqui, mas veja se ajuda:

http://technet.microsoft.com/p...



 Responder

 Partilhar







Oziel Alves Luiz Otvio Miranda Figueiredo h 2 anos

ok, vo testa e posto resultado, vlw

 2

 Responder

 Partilhar








Oziel Alves Luiz Otvio Miranda Figueiredo h 2 anos

me explica uma coisa nesse:

set INTERFACE=rede

preciso especificara minha conexao, que no caso seria


aqui "conexao local 2". entao pra me ficaria assim:
set INTERFACE=Conexao local 2? correto?



 Responder

 Partilhar








Luiz Otvio Miranda Figueiredo Moderador Oziel


Alves h 2 anos

Sim, normalmente eu mudo o nome da conexo


para evitar incompatibilidade. Tipo: Cabo1,
Cabo2, Wifi1, Wifi2. S renomear a conexo e
boa.



 Responder

 Partilhar








Oziel Alves Luiz Otvio Miranda


Figueiredo h 2 anos

entao, ainda nao deu certo, mas qd eu abro


o prompt e mandoocomando ele pega d
boa, ja no bat nao, oq pode ser?



 Responder

 Partilhar








Luiz Otvio Miranda Figueiredo


Moderador Oziel Alves h 2 anos

Tem que executar como


administrador. Clica com o boto
direito do mouse e escolhe,
executar como administrador.
Talvez por ser Windows Server,
voc precise alterar algumas opes
de segurana.



 Responder

 Partilhar





Raphael h 2 anos

No meu win xp, quando dou o clique duplo, aparece a tela e some sem fazer nenhuma
alterao, acho que meu comando choice no funciona, tem como usar outro comando?



Responder

Partilhar
o
o
o


o
o

Luiz Otvio Miranda Figueiredo Moderador Raphael h 2 anos

Nosso leitor Joo Lucas Costa detalhou tudo sem a opo choice aqui
http://www.todoespacoonline.co... . No entanto, voc tem que executar o BAT
com direitos administrativos, caso contrrio no funciona.

o
o
o Responder
o
o Partilhar



o
o



Raphael Luiz Otvio Miranda Figueiredo h 2 anos

Luiz, desculpa por ser um pouco leigo nesse assunto, mas como ficaria
as alteraes conforme o ex abaixo, j alterei o ip e o nome da rede pro
meu caso:

@echo off
set INTERFACE=CABO
set IP=192.168.100.27
set MASCARA=255.255.255.0
set GATEWAY=192.168.100.1
set DNS=192.168.100.1
choice /C FAC /M "Pressione: [F]ixo, [A]utomatico ou
[C]ancelar"
IF errorlevel=3 goto FIM
IF errorlevel=2 goto AUTOMATICO
IF errorlevel=1 goto FIXO
:FIXO
netsh interface ip set address name="%INTERFACE%" static
%IP% %MASCARA% %GATEWAY%
netsh interface ip set dnsservers name="%INTERFACE%"
static %DNS% primary no
goto :FIM
:AUTOMATICO
netsh interface ip set address name="%INTERFACE%" dhcp
netsh interface ip set dnsservers name="%INTERFACE%" dhcp
goto :FIM
:FIM
exit

 1

 Responder

 Partilhar








Luiz Otvio Miranda Figueiredo Moderador Raphael h 2 anos

Voc vai ter que criar dois BATs, um para fixo outro para
automtico.

O fixo fica assim:

@echo off
set INTERFACE=CABO
set IP=192.168.100.27
set MASCARA=255.255.255.0
set GATEWAY=192.168.100.1
set DNS=192.168.100.1
netsh interface ip set address name="%INTERFACE%"
static %IP% %MASCARA% %GATEWAY%
netsh interface ip set dnsservers name="%INTERFACE%"
static %DNS% primary no
@pause
exit

Para IP automtico fica assim:

@echo off
set INTERFACE=CABO
set IP=192.168.100.27
set MASCARA=255.255.255.0
set GATEWAY=192.168.100.1
set DNS=192.168.100.1
netsh interface ip set address name="%INTERFACE%"
dhcp
netsh interface ip set dnsservers name="%INTERFACE%"
dhcp
@pause
exit

Espero ter ajudado!

ver mais

 1

 Responder

 Partilhar





Julio h 2 anos

Executei o bat, porm apresenta msg de erro "comando invlido". Windows 7 ultimate.
Acho que seja o diretrio da minha placa de rede, j que a sua est como rede.



Responder

Partilhar

o
o
o


o
o

Julio Julio h 2 anos

J alterei o nome, e nada. O que devo fazer?

o
o
o Responder
o
o Partilhar



o
o



Luiz Otvio Miranda Figueiredo Moderador Julio h 2 anos

Qual o comando voc est executando? Posta pra eu ver?



 Responder

 Partilhar





S-ar putea să vă placă și