como podria, como dice el titulo de la pregunta, introducir la parte que yo eliga de un documento de texto en una variable de entorno para guardar datos y poder utilizarlos de nuevo la proxima vez sin tener que introducirlos nuevamente
El título de tu pregunta da a entender algo distinto, asignar el contenido de un archivo de texto ..el cual pueden ser varias lineas, a una variable de entorno del sistema, pero sencillamente eso no es posible, ya que para empezar, las variables de entorno no son multi-linea, y Batch no acepta de forma natural la asignación ni el uso de variables multi-linea, aunque se puede asignar una variable multi-linea con una conocida técnica bastante indocumentada, pero la variable de entorno solo conservará la primera linea:
REM End New Line
Set multiLineStr=Line1
!NewLine!Line2
SetX.exe "MyVar" !multiLineStr!
Si por lo contrario solo quieres asignar una linea de dicho archivo de texto a una variable de entorno pues ...¿cual es el problema que encuentras?, solo debes usar un FOR para iterar las lineas y utilizar el comando externo SetX cómo en el ejemplo de arriba.
como dirigir la salida de un comando hacia un lugar concreto de un archivo sin que sea necesariamente al final, es decir entre dos renglones determinados o incluso detras de un determinado caracter de uno de los renglones.
Es imposible, no puedes redireccionar el flujo de datos de la salida estándar/error de un comando hacia una posición en concreto del stream de "X" archivo o hacia una linea de un archivo de texto plano, en una herramienta tan limitada cómo es Batch NO.
Aparte de eso, insertar texto en una linea específica de un archivo de etxto es complicado, no por la tarea en si misma, sino por que Batch fue diseñado para automatizar tareas básicas y, aunque la manipulación de texto es algo muy simple en otros lenguajes, en Batch se vuelve una tarea muy tediosa además de muy, muy ineficiente debido a sus limitaciones.
⇲ Puedes ver este pequeño set de herramientas que desarrollé hace tiempo en Batch con el que podrá realizar algunas operaciones que te pueden resultar interesantes, entre ellas, insertar texto en una linea específica:
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de textoMe he fijado que aunque escribes help para obtener todos los comandos, en realidad no estan todos (como el comando choice). Como puedo saber cuales son todos los comandos que hay realmente sin tener que mirarlo en internet? Donde estan guardados realmente?
Choice no es un comando, es un programa externo a Batch, es una aplicación commandline (choice.exe).
La mayoría de este tipo de aplicaciones externas se utilizan en scripts Batch para intentar compensar la ausencia de brazos y piernas de este limitado "
lenguaje de programación" y entonces se les suelen llamar inapropiadamente comandos (o comandos externos).
Lo mismo ocurre con find.exe, findstr.exe, xcopy.exe, y un montón de herramientas externas más, no son comandos internos de batch cómo lo es por ejemplo el comando 'Echo', aunque algunas de estas aplicaciones externas si que están documentados en la ayuda de la CMD, no están todas las aplicaciones documentadas en la CMD cómo te has dado cuenta, pero las aplicaciones commandline de Microsoft tienen su propia ayuda commandline, por ejemplo:
Como puedo saber cuales son todos los comandos que hay realmente sin tener que mirarlo en internet? Donde estan guardados realmente?
En el directorio del sistema, es decir, en '
C:\Windows\System32', encontrarás expandidos los archivos .dll, .com, y .exe que se utilizan por o en la CMD.
Saludos