Eu tenho um arquivo em lotes:
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
Como posso executar esses dois comandos no Windows XP, a cada 10 segundos?
Eu tenho um arquivo em lotes:
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
Como posso executar esses dois comandos no Windows XP, a cada 10 segundos?
Respostas:
isso faz 10 segundos. demora:
timeout /t 10
então tente o seguinte:
:loop
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
timeout /t 10
goto loop
/t
OR para pressionar qualquer tecla - que pode ser desativado enviando /NOBREAK
param :)
Tente este:
:loop
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
ping localhost -n 11 > nul
goto loop
O comando ping será executado por 10 segundos e toda a saída será redirecionada para o dispositivo NUL, o que significa que você não verá nenhuma saída do comando ping. Ele realmente funciona como um comando "dormir".
:top
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
sleep 10
goto top
Editar: conforme mencionado nos comentários, SLEEP
não estará disponível em uma instalação normal. Você precisará de algo como o Windows 2003 Resource Kit ou algum outro truque para simulá-lo (o truque de ping que Bruno menciona), e as notas para fazer isso podem ser encontradas aqui .
choice
que talvez não seja incluído por padrão. Vou investigar mais.
A solução mais precisa executa ping no host inexistente uma vez e define o tempo limite
ping 1.0.0.0 -n 1 -w 10000> nul
Mas gera tráfego parasita
Você pode usar o comando for
e ping
:
@echo off
for /l %%a in (0,0,0) do (
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
ping -n 11 localhost >nul
)
Você pode ping -n [secs+1] localhost >nul
esperar um certo tempo em segundos.
goto
.
Enganação:
Use este comando para pausar o lote por 10 segundos
escolha / n / t: c, <10> / c: cc
Agora, coloque-o em um loop sem fim no lote e pronto!
choice
veio com o XP e mais tarde, ou pelo menos não o vi em nenhuma instalação recente.
abaixo, é uma maneira feia e bonita, um arquivo em lotes do Windows - consome muito tempo da CPU para não fazer nada, mas faz o que você quer e é tão bom.
SETLOCAL EnableDelayedExpansion
::in seconds
set time2stop=10
:loop1
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
for /f "tokens=1,2* delims=:" %%i in ("!time!") do (
set hour1=%%i
set min1=%%j
set sec1=%%k
)
for /f "tokens=1* delims=," %%i in ("!sec1!") do (
set isec1=%%i
)
:loop2
for /f "tokens=1,2* delims=:" %%i in ("!time!") do (
set hour2=%%i
set min2=%%j
set sec2=%%k
)
for /f "tokens=1* delims=," %%i in ("!sec2!") do (
set isec2=%%i
)
set /a delta=3600*(!hour2!-!hour1!)+60*(!min2!-!min1!)+(!isec2!-!isec1!)
if !delta! geq !time2stop! goto end2
goto loop2
:end2
@echo on
goto loop1