Вариант 3. Берёте
tee.exe (например, из комплекта GnuWin32
CoreUtils for Windows) и пользуете. Скажем, такое:
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set sLog=Log.log
if exist "%sLog%" del /f /q "%sLog%"
>nul chcp 1251
for %%i in ("%CD%\*.txt") do (
copy "%%~i" "%%~dpni_copy%%~xi"
) |tee.exe -a "%sLog%"
pause |tee.exe -a "%sLog%"
>nul chcp 866
endlocal
exit /b 0
Конечно, такое себе…
Вариант 4. Пользуете PowerShell, в качестве tee.exe — командлет Tee-Object.
Цитата shadowbat:
вариант 2 не подходит, потому что лог совсем не совпадает с окном, »
|
Потому что этим кодом Вы на каждом очередном проходе цикла перезаписываете («> log.txt») лог-файл, созданный на предыдущем проходе цикла.
Кстати, я категорически не рекомендую проводить какие-либо манипуляции с именами файлов, над которыми производится цикл выборки «for». Дело в том, что выборка подходящих по маске файлов не делается сразу при входе, поиск очередного файла производится на каждом проходе (банальными FindFirstFile() на первом проходе и FindNextFile() на последующих). Посему при подобном коде на определённых наборах можно получить вовсе не то, что ожидалось (вплоть до бесконечного исполнения пакетного файла). Например, попробуйте исполнить приведённый Вами код на таком наборе файлов (на разделе с файловой системой NTFS):
Код:

0001.txt
0001_b.txt
0002.txt