1

Тема: CMD/BAT: перекодировка текста dos866↔win1251

Есть немало консольных утилит для перекодировки текста, но многие забывают про встроенные возможности.

@echo off
if [%2]==[] (
    echo Convert dos866 to win1251
    echo Usage: dos2win input.file output.file
    exit /b 1
)
set out=%2
chcp 866 >nul
for /f "tokens=*" %%a in (%1) do call :convert %%a
goto :eof

:convert
chcp 1251 >nul
echo %*>>%out%
chcp 866 >nul

Ну и, аналогично, наоборот:

@echo off
if [%2]==[] (
    echo Convert win1251 to dos866
    echo Usage: win2dos input.file output.file
    exit /b 1
)
set out=%2
chcp 1251 >nul
for /f "tokens=*" %%a in (%1) do call :convert %%a
goto :eof

:convert
chcp 866 >nul
echo %*>>%out%
chcp 1251 >nul

Решение придумал 01MDM, на энтузиазме которого очень активно функционирует топик по CMD/BAT в ru-board.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.