У мене є пакетний файл:
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
Як я можу робити ці дві команди в Windows XP кожні 10 секунд?
У мене є пакетний файл:
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
Як я можу робити ці дві команди в Windows XP кожні 10 секунд?
Відповіді:
це робить 10 сек. затримка:
timeout /t 10
тому спробуйте це:
:loop
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
timeout /t 10
goto loop
/t
АБО для натискання будь-якої клавіші - яке можна вимкнути, надіславши /NOBREAK
парам :)
Спробуйте це:
:loop
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
ping localhost -n 11 > nul
goto loop
Команда ping буде виконуватись протягом 10 секунд, і весь вихід буде перенаправлений на пристрій NUL, це означає, що ви не побачите жодного виводу з команди ping. Це справді працює так, як би команда "сну".
:top
arp -s 192.168.1.254 xx-xx-xx-xx-xx-xx
ipconfig /flushdns
sleep 10
goto top
Редагувати: Як зазначено в коментарях, SLEEP
вони не будуть доступні в звичайній інсталяції. Вам знадобиться щось на зразок набору ресурсів Windows 2003 або якийсь інший трюк, щоб імітувати його (згадує трюк пінг, який Бруно згадує), і примітки для цього можна знайти тут .
choice
він може не включатись у стандарт. Я детальніше розберуся в цьому.
Більш точне рішення пінг одного разу неіснуючого хоста та встановлення тайм-ауту
ping 1.0.0.0 -n 1 -w 10000> нуль
Але це генерує трафік паразитів
Ви можете використовувати команду for
та 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
)
Ви можете використовувати, ping -n [secs+1] localhost >nul
щоб зачекати певну кількість часу в секундах.
goto
.
Чит:
Використовуйте цю команду, щоб призупинити пакет на 10 секунд
вибір / n / t: c, <10> / c: cc
Тепер помістіть його в нескінченну петлю в партії і voilà!
choice
прийшов із XP та пізнішими версіями, або, принаймні, я не бачив його в останніх встановленнях.
внизу, це одночасно некрасиво і прекрасно, пакетний файл Windows - він вимагає багато процесорного часу, щоб нічого не робити, але це робить те, що ви хочете, і це так приємно.
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