2016-02-16 122 views
1

我有我想用一批基本上去掉一個字符串我有下如何使用批處理

randomID1, randomID2, randomID3, networkinterface, othercolumn1, othercolumn2, 
abc123AAB, 098189909, 999181818, net on Server123, FORCED, anotherthing, 
abc2455aB, 848449388, 123131232, LocalNet on SEV1, FORCED, otherlessstuff, 

我有關caracthers修改CSV文件來刪除一個CSV文件中的字符或字符串之前文本是Server123和SEV1,所以我需要將上面的內容轉換成

randomID1, randomID2, randomID3, networkinterface, othercolumn1, othercolumn2, 
abc123AAB, 098189909, 999181818, Server123, FORCED, anotherthing, 
abc2455aB, 848449388, 123131232, SEV1, FORCED, otherlessstuff, 

這意味着要刪除'net on'和'LocalNet on'字符串。

我該怎麼做?

回答

0

批處理語言是遠遠不夠理想這一點,但這裏離是一個基本的腳本簡單地行由行刪除的出現「淨月」「localnet是對」 input.txt中並保存導致如output.txt的

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
TYPE NUL > output.txt 
FOR /F "delims=" %%L IN (input.txt) DO (
    SET LINE=%%L 
    SET LINE=!LINE:LocalNet on =! 
    ECHO/!LINE:net on =!>> output.txt 
) 

優化是可能的,並且可能需要。例如,如果文件中包含保留的字符,如&這是不行的。它不區分大小寫。後者是「LocalNet on」替換是在「net on」替換之前完成的,替換是不區分大小寫的子字符串。這裏沒有具體的CSV,因爲你的問題似乎並不需要。但是,例如,如果你需要以不同方式對待不同的逗號分隔的標記,可以用"delims=,"選項和一些額外的代碼來完成。

+0

@Hugo,讓你有機會看看這對你的作品?如果是這樣,請考慮標記接受的答案。 [這是爲什麼](http://meta.stackexchange.com/q/5234/317538),這是值得的。 – WinTakeAll