2014-10-17 100 views
0

我试图替换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建议看here。现在,当我试图将大文件的字符替换为换行时,输出不完整。我们对这种情况有限制吗?

+0

您无法同时读取和写入同一个文件。您需要将输出发送到不同的文件。 – 2014-10-17 10:57:16

+0

@MCND 非常感谢你的反馈:) – PeterS 2014-10-20 12:50:56

回答

1

正如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 
) 

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

+0

@PeterS这对你有帮助吗? – foxidrive 2014-10-20 09:58:28

+0

@foxidrive 我会稍后再试:)谢谢你们:) – PeterS 2014-10-20 12:50:16