+ 1 для решения Джеба ... Я не знал, что вы можете использовать команду more , чтобы пропустить такие строки!
Вот альтернативный метод, который я использую для получения определенной строки из файла (или из многострочного вывода другой программы):
@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "C:\SomeFile.txt"') do (
if "%%a" equ "%1" echo.%%b
)
Я использую findstr / n. * "Path \ FileName.ext" , чтобы добавить номера строк и убедиться, что пустые строки не пропускаются циклом for.
Затем я устанавливаю "tokens = 1 * delims =:" , чтобы отделить номера строк от содержимого строк.
Наконец, я сравниваю текущий номер строки ( %% a ) со строкой, указанной параметром % 1 , и выводю содержимое строки ( %% b ) на матч.