прохожусь поиском по каждой строке во всём файле, найти определенную строку(несколько слов вхождений) и в этой найденной строке выделяю слова, находящиеся между кавычек. Как записать в переменную - не знаю
Использовал батник, который генерит программу для старого QBasic 1.1 - думаю, сможете его разыскать без проблем. Подозреваю, проще полностью написать Вашу задачу на базике и не уродоваться с батником
Тестировал в MS DOS 8. Кстати, ставил на флэшку посредством Rufus
Код:

@Echo Off
cls
Set FileIn=TEST.TXT
Set FindStr=Serial Number
Set BasTmp=bastmp.bas
Echo DIM StrIn AS STRING >%BasTmp%
Echo DIM Finds AS STRING >>%BasTmp%
Echo DIM A AS STRING >>%BasTmp%
Echo. >>%BasTmp%
Echo DIM i AS INTEGER >>%BasTmp%
Echo DIM j1 AS INTEGER >>%BasTmp%
Echo DIM j2 AS INTEGER >>%BasTmp%
Echo. >>%BasTmp%
Echo Finds = "%FindStr%" >>%BasTmp%
Echo. >>%BasTmp%
Echo OPEN "%FileIn%" FOR INPUT AS #1 >>%BasTmp%
Echo. >>%BasTmp%
Echo WHILE NOT EOF(1) >>%BasTmp%
Echo INPUT #1, StrIn >>%BasTmp%
Echo i = INSTR(1, UCASE$(StrIn), UCASE$(Finds)) >>%BasTmp%
Echo IF NOT i = 0 THEN >>%BasTmp%
Echo ' PRINT StrIn >>%BasTmp%
Echo j1 = INSTR(1, StrIn, CHR$(34)) + 1 >>%BasTmp%
Echo j2 = INSTR(j1, StrIn, CHR$(34)) >>%BasTmp%
Echo PRINT MID$(StrIn, j1, j2 - j1) >>%BasTmp%
Echo END IF >>%BasTmp%
Echo WEND >>%BasTmp%
Echo CLOSE #1 >>%BasTmp%
Echo SYSTEM >>%BasTmp%
QBASIC.EXE /RUN %BasTmp%
Pause