it-swarm-eu.dev

Fai qualcosa ogni 10 secondi di file batch

Ho un file batch:

arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns

Come posso eseguire questi due comandi su Windows XP, ogni 10 secondi?

21
steven

questo fa 10 secondi. ritardo:

timeout /t 10

quindi prova questo:

 :loop
 arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
 ipconfig /flushdns
 timeout /t 10
 goto loop
30
Tony

Prova questo:

:loop
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
ping localhost -n 11 > nul
goto loop

Il comando ping verrà eseguito per 10 secondi e tutto l'output verrà reindirizzato al dispositivo NUL, il che significa che non verrà visualizzato alcun output dal comando ping. Funziona davvero come farebbe un comando "sonno".

19
Bruno Reis
:top
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
sleep 10
goto top

Modifica: Come menzionato nei commenti, SLEEP non sarà disponibile in un'installazione normale. Avrai bisogno di qualcosa come il Resource Kit di Windows 2003, o qualche altro trucco per simularlo (il trucco del ping di Bruno cita), e le note per farlo possono essere trovate qui .

11
Doug Kavendek

Puoi usare il 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
)

Puoi usare ping -n [secs+1] localhost >nul per aspettare un certo periodo di tempo in secondi.

1
Hayz

Una soluzione più precisa esegue il ping di un host inesistente una volta e imposta il timeout

ping 1.0.0.0 -n 1 -w 10000> nul

Ma genera traffico parassita

1

Truffare:

Utilizzare questo comando per mettere in pausa il batch per 10 secondi

scelta/n/t: c, <10>/c: cc

Ora mettilo in un loop infinito nel batch e voilà!

0
Dan McGrath

Installa Cygwin che renderà disponibili sleep e cron (tra le altre cose).

0
mob