Ms-Dos - Leer una linea y el dato en una columna de varios TXT

 
Vista:
sin imagen de perfil

Leer una linea y el dato en una columna de varios TXT

Publicado por Juan Carlos (3 intervenciones) el 24/07/2023 21:25:23
Cordial saludo,

Tengo un requerimiento y es el siguiente:

En mi computador tengo una carpeta dentro de la cual hay varios archivos TXT, en cada uno de ellos debo leer la línea #9 y extraer un dato que corresponde a una fecha que es diferente por cada archivo.

Cada archivo TXT debo copiarlo a otra carpeta con el mismo nombre adicionándole la fecha que he leído previamente.

He intentado varias opciones utilizando un script .bat, pero no logro extraer el campo de fecha que se encuentra a partir de la columna 30 hasta la columna 40.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Leer una linea y el dato en una columna de varios TXT

Publicado por Antoni Masana (811 intervenciones) el 25/07/2023 23:20:37
Sube los ficheros, lo que tienes tengas hecho para buscar, indica exactamente que dato buscas y te lo ajusto.
Sin unos ficheros de ejemplo no puedo ayudarte.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Leer una linea y el dato en una columna de varios TXT

Publicado por Juan Carlos (3 intervenciones) el 26/07/2023 14:43:03
Buenos días,

Adjunto el fichero, todos los archivos que tengo en la carpeta tienen la misma estructura interna.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Leer una linea y el dato en una columna de varios TXT

Publicado por Antoni Masana (811 intervenciones) el 26/07/2023 15:28:38
Aquí tienes el BAT:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@echo off
set Dir_Orig=C:\LWP\Documento_Old
set Dir_Dest=C:\LWP\Documento_New
 
cd %DIr_orig%
echo.
for %%b in (*.txt) do Call :Leer %%b  %%~nb  %%~xb
echo.
goto :EOF
 
:Leer
    set File=%1
    set Nomb=%2
    set Exte=%3
    set Num=0
    set Fecha=
 
    for /F "delims=*" %%a in (%File%) do Call :Lista "%%a"
 
    echo La fecha del %File% es %Fecha% se copia a %Dir_Dest% como %Nomb%-%Fecha%%Exte%
    copy %Dir_Orig%\%File% %Dir_Dest%\%Nomb%-%Fecha%%Exte%
	goto :EOF
 
:Lista
    set Texto=%1
    set Texto=%Texto:~1,-1%
	set /A num+=1
    if %Num% EQU 8 set Fecha=%Texto:~89,10%
    if %Num% EQU 8 set Fecha=%Fecha:/=.%
    goto :EOF

He creado unos ficheros de pruebas.

Mientra se ejecuta ira mostrando este tipo de mensaje:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
La fecha del 00-documento.txt es 01.09.2022 se copia a C:\LWP\Documento_New como 00-documento-01.09.2022.txt
La fecha del 01-documento.txt es 02.09.2022 se copia a C:\LWP\Documento_New como 01-documento-02.09.2022.txt
La fecha del 02-documento.txt es 03.09.2022 se copia a C:\LWP\Documento_New como 02-documento-03.09.2022.txt
La fecha del 03-documento.txt es 04.09.2022 se copia a C:\LWP\Documento_New como 03-documento-04.09.2022.txt
La fecha del 04-documento.txt es 05.09.2022 se copia a C:\LWP\Documento_New como 04-documento-05.09.2022.txt
La fecha del 05-documento.txt es 06.09.2022 se copia a C:\LWP\Documento_New como 05-documento-06.09.2022.txt
La fecha del 06-documento.txt es 07.09.2022 se copia a C:\LWP\Documento_New como 06-documento-07.09.2022.txt
La fecha del 07-documento.txt es 08.09.2022 se copia a C:\LWP\Documento_New como 07-documento-08.09.2022.txt
La fecha del 08-documento.txt es 09.09.2022 se copia a C:\LWP\Documento_New como 08-documento-09.09.2022.txt
La fecha del 09-documento.txt es 10.09.2022 se copia a C:\LWP\Documento_New como 09-documento-10.09.2022.txt
La fecha del 10-documento.txt es 11.09.2022 se copia a C:\LWP\Documento_New como 10-documento-11.09.2022.txt
La fecha del 11-documento.txt es 12.09.2022 se copia a C:\LWP\Documento_New como 11-documento-12.09.2022.txt
La fecha del 12-documento.txt es 13.09.2022 se copia a C:\LWP\Documento_New como 12-documento-13.09.2022.txt
La fecha del 13-documento.txt es 14.09.2022 se copia a C:\LWP\Documento_New como 13-documento-14.09.2022.txt
La fecha del 14-documento.txt es 15.09.2022 se copia a C:\LWP\Documento_New como 14-documento-15.09.2022.txt
La fecha del 15-documento.txt es 16.09.2022 se copia a C:\LWP\Documento_New como 15-documento-16.09.2022.txt
La fecha del 16-documento.txt es 17.09.2022 se copia a C:\LWP\Documento_New como 16-documento-17.09.2022.txt
La fecha del 17-documento.txt es 18.09.2022 se copia a C:\LWP\Documento_New como 17-documento-18.09.2022.txt
La fecha del 18-documento.txt es 19.09.2022 se copia a C:\LWP\Documento_New como 18-documento-19.09.2022.txt
La fecha del 19-documento.txt es 20.09.2022 se copia a C:\LWP\Documento_New como 19-documento-20.09.2022.txt

Y a su vez ira ejecutando estas copias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
copy C:\LWP\Documento_Old\00-documento.txt C:\LWP\Documento_New\00-documento-01.09.2022.txt
copy C:\LWP\Documento_Old\01-documento.txt C:\LWP\Documento_New\01-documento-02.09.2022.txt
copy C:\LWP\Documento_Old\02-documento.txt C:\LWP\Documento_New\02-documento-03.09.2022.txt
copy C:\LWP\Documento_Old\03-documento.txt C:\LWP\Documento_New\03-documento-04.09.2022.txt
copy C:\LWP\Documento_Old\04-documento.txt C:\LWP\Documento_New\04-documento-05.09.2022.txt
copy C:\LWP\Documento_Old\05-documento.txt C:\LWP\Documento_New\05-documento-06.09.2022.txt
copy C:\LWP\Documento_Old\06-documento.txt C:\LWP\Documento_New\06-documento-07.09.2022.txt
copy C:\LWP\Documento_Old\07-documento.txt C:\LWP\Documento_New\07-documento-08.09.2022.txt
copy C:\LWP\Documento_Old\08-documento.txt C:\LWP\Documento_New\08-documento-09.09.2022.txt
copy C:\LWP\Documento_Old\09-documento.txt C:\LWP\Documento_New\09-documento-10.09.2022.txt
copy C:\LWP\Documento_Old\10-documento.txt C:\LWP\Documento_New\10-documento-11.09.2022.txt
copy C:\LWP\Documento_Old\11-documento.txt C:\LWP\Documento_New\11-documento-12.09.2022.txt
copy C:\LWP\Documento_Old\12-documento.txt C:\LWP\Documento_New\12-documento-13.09.2022.txt
copy C:\LWP\Documento_Old\13-documento.txt C:\LWP\Documento_New\13-documento-14.09.2022.txt
copy C:\LWP\Documento_Old\14-documento.txt C:\LWP\Documento_New\14-documento-15.09.2022.txt
copy C:\LWP\Documento_Old\15-documento.txt C:\LWP\Documento_New\15-documento-16.09.2022.txt
copy C:\LWP\Documento_Old\16-documento.txt C:\LWP\Documento_New\16-documento-17.09.2022.txt
copy C:\LWP\Documento_Old\17-documento.txt C:\LWP\Documento_New\17-documento-18.09.2022.txt
copy C:\LWP\Documento_Old\18-documento.txt C:\LWP\Documento_New\18-documento-19.09.2022.txt
copy C:\LWP\Documento_Old\19-documento.txt C:\LWP\Documento_New\19-documento-20.09.2022.txt

El FOR no lee los registros vacíos por lo que el registro que tiene la fecha es el 8 y no el 9.

Adjunto BAT y documentos de la prueba.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Leer una linea y el dato en una columna de varios TXT

Publicado por Juan Carlos (3 intervenciones) el 26/07/2023 23:25:33
Buenas tardes,

He realizado las pruebas y efectivamente el código ha funcionado al 100%, muchas muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar