batch file可从一个文本文件中删除另一个文本文件的行

batch file可从一个文本文件中删除另一个文本文件的行,file,batch-file,File,Batch File,我有两个文本文件-blacklist.txt和complete.txt。 我想要一个批处理文件,而不是bash文件代码。 我想删除两个文件之间的公用行。 应从complete.txt文件中删除黑名单文件中的名称 有什么帮助吗 findstr /v /x /g:blacklist.txt complete.txt >outfile.txt 应从完成中删除黑名单中的所有条目,以生成输出文件这不需要Unicode输入和输出。给它起个名字吧。vbs Set Arg = WScript.Argum

我有两个文本文件-blacklist.txt和complete.txt。 我想要一个批处理文件,而不是bash文件代码。 我想删除两个文件之间的公用行。 应从complete.txt文件中删除黑名单文件中的名称 有什么帮助吗

findstr /v /x /g:blacklist.txt complete.txt >outfile.txt

应从
完成
中删除
黑名单
中的所有条目,以生成
输出文件

这不需要Unicode输入和输出。给它起个名字吧。vbs

Set Arg = WScript.Arguments
set WshShell = createObject("Wscript.Shell")
Set Fso = CreateObject("Scripting.FileSystemObject")
Set BlackFile = Fso.OpenTextFile(Arg(0), 1, False, -1)
Set CompleteFile = Fso.OpenTextFile(Arg(1), 1, False, -1)
Set OutputFile = Fso.CreateTextFile(Arg(2), True, True)
Set Dict = CreateObject("Scripting.Dictionary")
On Error Resume Next
Do Until BlackFile.AtEndOfStream
    Line=BlackFile.readline
    Dict.Add Line, ""
Loop
Do Until CompleteFile.AtEndOfStream
    Line=CompleteFile.readline
    If Dict.Exists(Line)
        OutputFile.Writeline Line
    End If
Loop
在命令提示下使用

C:\folder\something.vbs black.txt complete.txt newfile.txt

@for/f“delims=“%A in(black.txt)Do(@Findstr/v/C:%A”complete.txt>newfile.txt&Copy/y newfile.txt complete.txt)
成批使用
%A
,在提示下键入时使用
%A
。非常感谢您,代码确实有效。:)当blacklist.txt以unicode格式保存时,它不起作用。仅在保存为ANSI时工作。我是否可以让它也使用unicode文件
@for/f“delims=“%A in('type black.txt')Do(@Findstr/v/C:“%A”complete.txt>newfile.txt&Copy/y newfile.txt complete.txt)
我们现在通过将
type
命令的输出封装在
'…
中来读取它。是的,现在它也在使用unicode黑名单,txt。但它与unicode字符不匹配。一个名称是乌尔都语的,它不匹配,并将其从完整中删除。TXT让我建议声明
/L
选项以强制文字搜索模式。。。