『第 4 楼』:  
呵呵,还是喜欢set num=%%i&set %%i=%%j 
不错,set num=%%i & set "%%i=%%j"的确是最灵活的方法。
若是追求理论上的效率,不妨结合几种方法来实现:
@echo off
    setlocal enabledelayedexpansion 
    set row=2
    set line=5
    set file=a.txt
    set newFile=b.txt 4>b.txt
    set /a newLine = %line% - 1
    set /a before = %row% - 1
    for /l %%i in (1,1,%before%) do set "str=^^%%i:!str!"
    for /f "delims=: tokens=1*" %%i in ('findstr /n .* %file% ^| findstr /ir "%str%"') do (echo.%%j)>>%newFile% 
    for /f "skip=%before% delims=" %%i in (%file%) do set "midRow=%%i" & goto next
:next
    (echo,!midRow:~0,%newLine%!cn-dos!midRow:~%line%!)>>%newFile%
    more +%row% %file% >>%newFile%
exit /b 0