2013-07-18 55 views
0

我需要刪除業務文件中的某些特定數據。所有這些數據必須從商業文件中完全刪除。我注意到數據被寫入另一個文件中,並且每個文件都在一行中。將數據集刪除到批處理文件

第一個參數是數據文件,第二個參數是剛剛讀取的數據將被刪除的業務文件。 我寫了一批,不幸的是沒有數據從我的業務文件中刪除。事實上,輸出文件「result.txt」與每個特定的「%〜2」匹配。

@for /F "usebackqdelims=" %%a in ("%~1") do (
findstr /v /c:%%a "%~2" >result.txt 
) 

在處理結束時,result.txt不應該有任何要刪除的數據請求。

如果需要,看看我的數據文件的結構。其中一些項目出現在商業文件中。

[email protected]&t/fr 
$gr;top 
a^p/usa 

請幫幫我!

回答

2
FINDSTR /g:"%~1" /L /v /b /e "%~2" >u:\result.txt 

應該完成這個目標。

/g:從文件中獲取字符串匹配。 /L強制文字(而不是正則表達式)匹配。 /b /e強制匹配與開始和結束字符串的行 - 所以只有匹配時才匹配 - 而不僅僅是部分匹配。

+0

太棒了!非常感謝 – new