change.exe本来就是修改原文件的啊,不用重定向输出。
@echo off
set SrcFolder=C:\test
for /f "tokens=*" %%a in ('dir /s /b "%SrcFolder%\*.txt"') do (
change "%%a" /from "&H0D7C" /to "&H7C"
sed "/^$/d" "%%a"|sed -e :a -e "/\\$/N; s/\\\n//; ta"|sed ":a;$!N;s/\n|/|/;ta;P;D">>"%%~na.new"
)
for /f "tokens=*" %%a in ('dir /s /b "%SrcFolder%\*.new"') do (
ren "%%a" "%%~na.txt"
)