2016-12-25 2 views
1

У меня есть два текстовых файла - blacklist.txt и complete.txt. Мне нужен командный файл, а не код файла bash. Я хочу удалить общие линии между двумя файлами. имена в файле черного списка должны быть удалены из файла full.txt любая помощь?командный файл для удаления строк одного текстового файла из другого

+0

'@for/ф "delims =" % А в (black.txt) Do (@Findstr/V/C: "% A" complete.txt> newfile.txt & Copy/у newfile.txt complete.txt) 'Использовать' %% A' в партии и '% A' при вводе в командной строке. –

+0

Большое спасибо, что код действительно сработал. :) –

+0

Он не работает, когда blacklist.txt сохраняется в юникоде. работает только при сохранении в ANSI. Могу ли я заставить его работать с файлом unicode aswell –

ответ

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

должны удалить все записи в blacklist из complete производить outfile

+0

Позвольте мне указать параметр '/ L', чтобы принудительно использовать режим литерала ... – aschipfl

+0

@aschipfl: Да, хорошая идея. – Magoo

1

Это делает ввод и вывод Unicode. Назовите его чем-то.

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 
Смежные вопросы