Pregunta Archivo por lotes FOR comando omitiendo líneas


Necesito ayuda con el comando FOR en la presentación por lotes. Lo que quiero hacer es leer el archivo "Test.txt" y leer solo la tercera línea y convertirla en una variable utilizable dentro de este archivo por lotes. Esto es lo que he intentado, pero no funcionó.

for /f "skip=2 delims=" %%a in (Test.txt) do (
  set %%a=%LineThree%
)

Cuando ejecuto el programa, dice "El sistema no puede encontrar el archivo Test.txt. Toda la ayuda es muy apreciada.


1


origen


¿Está ejecutando su script en el mismo directorio que Test.txt? - armani
Tal vez si agregó una ruta de acceso completa a Test.txt: "C: \ Users \ Username \ Documents \ Test.txt" por ejemplo. - BillDOe
Debes escribir un cd (sin params) en la primera línea para verificar el directorio actual. Esto diferirá dependiendo de cómo y dónde comience su archivo por lotes. - Werner Henze


Respuestas:


  1. El error indica que su archivo Test.txt no está en el mismo directorio desde el que ejecuta el script.
  2. Para lograr una mejor captura de la tercera línea de un archivo de texto, intente lo siguiente, que se ejecutará rápidamente en ALGUNA tamaño de archivo, en lugar de tener que ejecutar un archivo completo como el suyo (y el suyo sería incorrecto ... en realidad está agarrando cada tercera línea)

    (para / l %% a en (1,1,3) do set / p LineThree =) <Test.txt

    echo% LineThree%

Como se menciona en otro comentario, es posible que desee probar la ruta completa al archivo en lugar de simplemente el nombre del archivo.


1





El principal problema con tu código son las citas faltantes de en (...)

Debería ser:

for /f "skip=2 delims=" %%a in ('Test.txt') do (
  set %%a=%LineThree%
)

Si aún no funciona, intente escribir la ruta completa para Test.txt (como otros sugirieron)


0