Вместо того, чтобы бороться с причудами cmd.exe, почему бы не использовать взамен vbscript?
Set objArgs = WScript.Arguments
strOld=objArgs(0)
strNew=objArgs(1)
str=Replace(WScript.StdIn.ReadAll,vbCrLf,"")
WScript.Echo Replace(str,strOld,strNew)
Сохранить выше как replace.vbs
Использование:
C:\test>echo test| cscript //nologo replace.vbs te mi
mist