TL; DR;
В командном файле CMD на win - Как добавить / напечатать вывод полного цикла в оба файла И на экран одновременно && непрерывно?
Длинная версия:
Я знаю, что это скорее задача powershell / bash или, как правило, лучше подходит для * nix / piping, но по какой-то причине мне нужно делать это на win (7!) Batch / cmd.
У меня есть несколько взломанный супер простой маленький примитивный цикл (на win 7) с некоторыми сетевыми задачами, чтобы проверять (локальные) обновления DNS-списков каждые x секунд, сбрасывать локальный DNS, а затем снова проверять на распространение. из win, чтобы потом быть проанализированным другим скриптом.
@echo off
set "domain=mydomain.TLD"
set "dns_host=dnshost.TLD"
set "NS1=ns1.dnshost.TLD"
set "NS2=ns1.dnshost.TLD"
set "neutralDNS=8.8.8.8"
set "timeout=60"
set "outputfile=myfile.txt"
FOR /L %%A IN (1,1,200) DO (
ECHO ************************************************
ECHO ********* Checking %domain% On %NS1% // %NS2%
ECHO ************* Loop Count :: %%A %Time%
ipconfig /flushdns
timeout %timeout%
ping %domain%
ping %dns_host%
ping %NS1%
ping %NS2%
nslookup %domain% %neutralDNS%
nslookup %dns_host% %NS1%
nslookup ns1.%dns_host%
REM ... Loop goes on here, commands are not really important
REM host %dns_host%// we are not on *nix !
REM dig %dns_host% @%neutralDNS% // we are not on *nix !
)
Я хотел бы добавить вывод цикла как к файлу, так и к экрану, но когда я пытаюсь добавить вывод с помощью >> myfile.txt
, примерно так:
FOR /L %%A IN (1,1,200) DO (
ECHO ************* Loop Count :: %%A %Time%
......
) >> %outputfile%
Выполнение просто не удается, и когда я пытаюсь вывести в файл с > myfile
, примерно так:
FOR /L %%A IN (1,1,200) DO (
ECHO ************* Loop Count :: %%A %Time%
......
) > %outputfile%
Файл будет перезаписываться при каждой итерации.
Другая проблема заключается в том, что в обоих случаях экран не выводится, за исключением явного эхо.