Batch file 如何查找和替换字符并应用于大型文件

Batch file 如何查找和替换字符并应用于大型文件,batch-file,command-line,cmd,batch-processing,Batch File,Command Line,Cmd,Batch Processing,我试图替换convert.txt中的某个字符。现在,convert.txt中的每个字符都将替换为文件中的换行符 我有以下代码: for /f "delims=" %%s in (convert.txt) do ( Type c:\PETER\%%a | repl.bat "\%%s" "%%s\n" X > c:\PETER\%%a ) 我尝试使用此页面上的replace.bat建议,请参见。现在,当我试图将一个大文件的字符替换为换行符时,输出是不完整的。我们对这种情况有限

我试图替换convert.txt中的某个字符。现在,convert.txt中的每个字符都将替换为文件中的换行符

我有以下代码:

for /f "delims=" %%s in (convert.txt) do (
    Type c:\PETER\%%a  | repl.bat "\%%s" "%%s\n" X > c:\PETER\%%a
  )

我尝试使用此页面上的replace.bat建议,请参见。现在,当我试图将一个大文件的字符替换为换行符时,输出是不完整的。我们对这种情况有限制吗?

正如MC ND在评论中所说,您不能同时读取和写入同一个文件。必须写入新文件,然后使用MOVE将原始文件替换为新文件

for /f "delims=" %%s in (convert.txt) do (
  type "c:\PETER\%%a"  | repl.bat "\%%s" "%%s\n" X > "c:\PETER\%%a.new"
  move /y "c:\PETER\%%a.new" "c:\PETER\%%a" >nul
)

无论文件大小如何,移动操作几乎是瞬时的。

您不能同时读取和写入同一文件。您需要将输出发送到不同的文件。@MCND非常感谢您的反馈:)@PeterS这对您有帮助吗?@foxidrive我稍后会尝试:)谢谢大家:)