Не буду утверждать, что это решение отличается от ранее предложенных, потому что в однострочники трудно вчитываться и стараться понять их логику.
set "m_filename=%windir%\System32\drivers\etc\hosts"
set /a "m_begin=1"
set /a "m_end=10"
set /a "m_skip=m_begin-1"
set /a "m_length=m_end-m_begin+1"
for /f "tokens=1,* delims=[]" %%f in ( '
more +%m_skip% "%m_filename%" ^| find /n /v ""
' ) do (
if %%f gtr %m_length% goto :done
echo:%%g
)
:done
PowerShell в круг доступных средств не входит? На нем можн обыло бы сделать нечто подобное head/tail/sed именно под эту задачу.
( 2 * b ) || ! ( 2 * b )