我需要删除业务文件中的一些特定数据。必须完全从业务文件中删除所有这些数据。我注意到数据写在另一个文件中,每个文件都在一行上。
第一个参数是数据文件,第二个参数是业务文件,其中将删除刚刚读取的数据。 我写了一个批处理,不幸的是没有数据从我的业务文件中删除。实际上,输出文件“result.txt”与每个特定的“%~2”匹配。
@for /F "usebackqdelims=" %%a in ("%~1") do (
findstr /v /c:%%a "%~2" >result.txt
)
在处理结束时,result.txt不应该删除任何数据请求。
如果需要,请查看我的数据文件的结构。其中一些项目出现在业务文件中。
ab@&t/fr
$gr;top
a^p/usa
请帮帮我!
答案 0 :(得分:2)
FINDSTR /g:"%~1" /L /v /b /e "%~2" >u:\result.txt
应该实现这个目标。
/g:
从文件中获取字符串匹配。 /L
强制进行文字(非正则表达式)匹配。匹配的/b /e
强制对抗BEGIN和END与字符串的行 - 因此只有在存在完全匹配时才匹配 - 不仅仅是部分匹配。