El problema que tienes es con el número total de líneas, ¿o con la longitud de la linea?
Si es lo primero, prueba así (testeado con 100.000 lineas):
set "dirvar=
%~dpn0.
%~nx1"
for /f "usebackq delims="
%%a in ("
%1"
) do ( )
En caso de ser lo segundo,
no hay solución, Batch es limitado y no puede leer/almacenar más hallá de una linea de 8.191 caracteres de longitud, es decir 8191 bytes,
la solución sería usar otro lenguaje.
EDITO:Aquí tienes una información adicional que di en "X" sitio en inglés, para que de verdad no hagas intentos en vano:
You can't break a limitation of the OS, you can't break the 255 chars path in Windows, and you can't break the CMD interpreter lenght limitation, simply as that!
Sorry but you can't store that line into a var, no way, don't exist any magic, computers are logical.
But it's not the end of the world, you can do it so easy in any other lenguage, I recommend you Ruby or python (Ruby for that), it's an easy job, open a file, store the content into a var, and then do what you want, don't need any experience for that, if you need a example just comment this.
Saludos!