J'ai un fichier batch:
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
Comment puis-je exécuter ces deux commandes sous Windows XP, toutes les 10 secondes?
J'ai un fichier batch:
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
Comment puis-je exécuter ces deux commandes sous Windows XP, toutes les 10 secondes?
Réponses:
cela fait un 10 sec. retard:
timeout /t 10
alors essayez ceci:
:loop
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
timeout /t 10
goto loop
/t
OR pour appuyer sur n'importe quelle touche - qui peut être désactivé en envoyant /NOBREAK
param :)
Essaye celui-là:
:loop
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
ping localhost -n 11 > nul
goto loop
La commande ping s'exécutera pendant 10 secondes et toute la sortie sera redirigée vers le périphérique NUL, ce qui signifie que vous ne verrez aucune sortie de la commande ping. Il fonctionne en effet comme le ferait une commande "sleep".
:top
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
sleep 10
goto top
Edit: Comme mentionné dans les commentaires, SLEEP
ne sera pas disponible dans une installation normale. Vous aurez besoin de quelque chose comme le Kit de ressources Windows 2003, ou d'une autre astuce pour le simuler (l'astuce ping mentionnée par Bruno), et des notes pour le faire peuvent être trouvées ici .
choice
cela pourrait ne pas être inclus par la norme. J'examinerai plus en détail.
Solution plus précise ping une fois sur l'hôte inexistant et définit le délai d'expiration
ping 1.0.0.0 -n 1 -w 10000> nul
Mais cela génère du trafic parasite
Vous pouvez utiliser la commande for
et 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
)
Vous pouvez utiliser ping -n [secs+1] localhost >nul
pour attendre un certain temps en secondes.
goto
.
Tricher:
Utilisez cette commande pour suspendre le lot pendant 10 secondes
choix / n / t: c, <10> / c: cc
Maintenant, placez-le dans une boucle sans fin dans le lot et voilà!
choice
c'était venu avec XP et plus tard, ou du moins je ne l'ai pas vu sur des installations récentes.
ci-dessous, c'est à la fois une méthode laide et belle, un fichier batch Windows - il consomme beaucoup de temps processeur pour ne rien faire, mais il fait ce que vous voulez et est tellement agréable.
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