close
標題:

取代內文的批次檔問題

發問:

請問一下各位大大 假設今天我有一個檔案叫做12345.txt 裡頭有上百筆資料 第1行 123 第2行 456 第3行 789 第N-1行 $$$ 777 第N行 ### 第N+M行 &&& 然後我想在第N行的 ### 後面插入文字 變成### 579 接著把第N-1行的 $$$ 777取代成$$$ 778 請問這種寫法用批次檔達的到嗎? 更新: 是搜尋文字喔 要搜尋 ### 然後在後面插入文字 下面也是要搜尋$$$ 然後修改在$$$後面的文字

最佳解答:

『然後我想在第N行的 ### 後面插入文字 ...』 取代原則為何 ? 是依行號還是搜尋文字 ? 依行號:不論第N行的文字內容是“###”還是“@@@”或其他文字,就在文字後面加上您要的“579”。 搜尋文字:不論行號N為何,若該行文字內容是“###”,就在文字後面加上您要的“579”。 『$$$ 777取代成$$$ 778』若 N-1 行的文字並非“$$$ 777”,取代原則為何 ? 還是無論第 N-1 行內容為何,皆強制改為“$$$ 778”? 2010-03-29 08:30:11 補充: 原先想知道別人的處理方式,結果還是沒人願意分享做法 ...... 這問題若在原來的 12345.txt 中,無空行的話,非常好處理;若含了空行(並且空行在輸出檔中須保留),就會讓人頭疼,而且是非常疼 ~~ @echo off set F1=12345.txt set F2=%F1%.tmp copy /Y NUL %F2% 1>NUL for /F "tokens=1* delims=]" %%i in ('type %F1%^|find /N /V ""') do ( if "%%j"=="###" ( echo %%j 579>>%F2% ) else if "%%j"=="$$$ 777" ( echo $$$ 778>>%F2% ) else ( echo %%j>>%F2% ) ) move /Y %F2% %F1% (以上程式碼會保留空行)

其他解答:

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

D4CDE60C03A2F1BC
arrow
arrow

    pxrnjl7 發表在 痞客邦 留言(0) 人氣()