elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  asignar a una variable los 15 primeros caracteres de un txt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: asignar a una variable los 15 primeros caracteres de un txt  (Leído 2,091 veces)
nniki999

Desconectado Desconectado

Mensajes: 5


Ver Perfil
asignar a una variable los 15 primeros caracteres de un txt
« en: 17 Enero 2016, 22:17 pm »

Buenas noches,

estoy leyendo un archivo txt (c_date.txt) que contiene un digito como este: 20151022_143130 (siempre de 15 caracteres contando el guion bajo). A veces despues del digito tengo espacios en blanco o incluso saltos de linea, pero necesito que la variable solamente almacene los 15 digitos, ya que luego utilizo la variable para buscar ficheros con ese nombre.

Con este codigo me almacena en la variable c_date todo el contenido del archivo c_date.txt

Código:
set c_date
IF EXIST c_date.txt (
<"c_date.txt" set /p "c_date="
set "c_date:=">>log.txt
) ELSE (
goto error1
)

Qué podría hacer? Podría leer directamente los 15 dígitos y asignarlo a la variable ya "limpio"? O tendría que crear otra varible para sacar los espacios en blanco?

Grcias!!


« Última modificación: 18 Enero 2016, 08:57 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: asignar a una variable los 15 primeros caracteres de un txt
« Respuesta #1 en: 18 Enero 2016, 08:56 am »

Cómo ya te comenté Batch es un lenguaje muy limitado, el cual tampoco soporta, de forma natural, la asignación de variables multi linea, ya que hay que usar "hacks"...

Tienes que recurrir a la misma metodología del FOR /F que te dije, para iterar las lineas del archivo de texto, y hacerle un substring a cada una para extraer la cantidad de caracteres deseada.

Ejemplo:
Código
  1. @Echo OFF
  2.  
  3. Set "file=.\c_date.txt"
  4.  
  5. For /F "UseBackQ Tokens=* Delims=" %%# In ("%file%") Do (
  6. Set "line=%%~#"
  7. Call Set "line=%%line:~0,15%%"
  8. Call Echo %%line%%
  9. )
  10.  
  11. Pause&Exit /B 0

Saludos


« Última modificación: 18 Enero 2016, 08:58 am por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines