Experimente:
for /f "delims=" %L in ('scriptname 2^>^&1') do @echo %L & echo %L >> log
O comando for
itera sobre as linhas de saída do script. Os carets escapam dos personagens que os seguem. O primeiro echo
vai para a tela e o segundo é anexado ao arquivo chamado "log".
Observe que o Powershell tem o comando tee
.