В соответствии с предложением findstr и для / f - инструменты для использования.
Я добавляю условное выполнение при неудаче ||
или при успехе &&
если findstr не обнаруживает текущий номер строки (созданный параметром / n), заключенный в запятые в отраженной переменной skip, строка записывается в новый файл.
:: Q:\Test\2018\06\09\SO_50777309.cmd
@echo off
:: generate test.txt with Line1..10
(for /l %%A in (1,1,10) do @Echo=Line%%A) >test.txt
Set "skip=,1,5,8,"
(for /f "tokens=1,*delims=:" %%a in (' findstr /n "^" ^<test.txt'
) do Echo=%skip%|findstr ",%%a," 2>&1>NUL ||Echo=%%b
)>newfile.txt
type newfile.txt
Примервывод
Line2
Line3
Line4
Line6
Line7
Line9
Line10