Ms-Dos - ¿Como saber la longitud de la primer linea de un archivo txt?

 
Vista:

¿Como saber la longitud de la primer linea de un archivo txt?

Publicado por Gaby (1 intervención) el 18/08/2011 23:42:01
Hola Buenas tardes,

Alguien sabe cómo puedo obtener, por medio de un archivo .bat, la longitud de la primer línea de un archivo .txt??
Necesito saber esto para poner una condición, si la longitud de la primer línea cumple con mi condición que el archivo se quede en la carpeta dónde lo estoy leyendo, pero, en caso contrario, que lo mueva de carpeta (todo el archivo).

Agradecería mucho su ayuda

Saludos

Gaby
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

¿Como saber la longitud de la primer linea de un archivo txt?

Publicado por Antoni Masana (811 intervenciones) el 22/08/2011 11:46:57
El MS-DOS no posee ninguna herramienta para contar los caracteres de una linea de texto.

Se me ocurre una solucion mala porque si hay espacios no funciona bien

Crea un BAT que se llame cuenta.bat y copia este texto. Veras que cuenta los caracteres de la primera linea pero solo hasta el espacio y no se porque.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@echo on
set Reg=0
set Num=0
 
FOR /F " delims=; " %%a in (cuenta.bat) do call :Paso_1 %%a
 
echo.
echo Longitud del texto "%text%" es de %Num%
echo.
GOTO:EOF
 
:Paso_1
   IF "%Reg%" == "0" call :Paso_2 %1
   SET Reg=1
   GOTO:EOF
 
:Paso_2
   SET text=%1
 
   SET ch=%text:~1,1%
   IF not "%ch%" == "" set Num=1
   SET ch=%text:~2,1%
   IF not "%ch%" == "" set Num=2
   SET ch=%text:~3,1%
   SET ch=%text:~3,1%
   IF not "%ch%" == "" set Num=3
   SET ch=%text:~4,1%
   IF not "%ch%" == "" set Num=4
   SET ch=%text:~5,1%
   IF not "%ch%" == "" set Num=5
   SET ch=%text:~6,1%
   IF not "%ch%" == "" set Num=6
   SET ch=%text:~7,1%
   IF not "%ch%" == "" set Num=7
   SET ch=%text:~8,1%
   IF not "%ch%" == "" set Num=8
   SET ch=%text:~9,1%
   IF not "%ch%" == "" set Num=9
   SET ch=%text:~10,1%
   IF not "%ch%" == "" set Num=10
   SET ch=%text:~11,1%
   IF not "%ch%" == "" set Num=11
   SET ch=%text:~12,1%
   IF not "%ch%" == "" set Num=12
   SET ch=%text:~13,1%
   IF not "%ch%" == "" set Num=13
   SET ch=%text:~14,1%
   IF not "%ch%" == "" set Num=14
   GOTO:EOF


Otra solucion seria untilizar un programa que se llama MAWK.COM o .EXE y que funciona igual que el equivalente en UNIX.

Otra opcion es hacer un programa que te devuelva un valor o una marca en funcion de la longitud.
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