BMW09121985, факт подтверждаю. Причины мне не ясны: обычный текст, состоящий из банальных цифр, нет проблем с концами строк. Не знаю, на что можно грешить во входных данных.
В качестве обходного пути предлагаю попробовать скрипт WSH:
читать дальше »
Код:

Option Explicit
Const SystemFolder = 1
Const ForWriting = 2
Dim lngErrCode
Dim objFSO
Dim strSourceFile
Dim strFilterFile
Dim objDictionary
Dim strLine
lngErrCode = 0
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If UCase(WScript.FullName) = UCase(objFSO.BuildPath(objFSO.GetSpecialFolder(SystemFolder), "cscript.exe")) Then
If WScript.Arguments.Count = 2 Then
If WScript.Arguments.Named.Exists("Source") Then
strSourceFile = WScript.Arguments.Named.Item("Source")
If WScript.Arguments.Named.Exists("Filter") Then
strFilterFile = WScript.Arguments.Named.Item("Filter")
If objFSO.FileExists(strSourceFile) Then
If objFSO.FileExists(strFilterFile) Then
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
With objFSO
With .OpenTextFile(strFilterFile)
Do Until .AtEndOfStream
strLine = .ReadLine()
If Not objDictionary.Exists(strLine) Then
objDictionary.Add strLine, strLine
End If
Loop
.Close
End With
With .OpenTextFile(strSourceFile)
Do Until .AtEndOfStream
strLine = .ReadLine()
If Not objDictionary.Exists(strLine) Then
WScript.StdOut.WriteLine strLine
End If
Loop
.Close
End With
End With
objDictionary.RemoveAll
Set objDictionary = Nothing
Else
WScript.StdErr.WriteLine "Filter file [" & strFilterFile & "] not found"
ShowUsage 6
End If
Else
WScript.StdErr.WriteLine "Source file [" & strSourceFile & "] not found"
ShowUsage 5
End If
Set objFSO = Nothing
Else
ShowUsage 4
End If
Else
ShowUsage 3
End If
Else
ShowUsage 2
End If
Else
MsgBox "Usage: cscript.exe //nologo " & WScript.ScriptName & " /Source:<Source file> /Filter:<Filter file>", _
vbExclamation + vbOKOnly, "Error: Use «cscript.exe» executable instead of «wscript.exe»"
lngErrCode = 1
End If
WScript.Quit lngErrCode
'=============================================================================
'=============================================================================
Sub ShowUsage(lngSetErrCode)
WScript.StdErr.WriteLine "Usage: cscript.exe //nologo " & WScript.ScriptName & " /Source:<Source file> /Filter:<Filter file>"
lngErrCode = lngSetErrCode
End Sub
'=============================================================================
На Вашем примере это может выглядеть так:
Код:

cscript.exe //nologo SomeScript.vbs /Source:0002.txt /Filter:0001.txt 1>0003.txt