2014-10-17 34 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