asignar a una variable los 15 primeros caracteres de un txt

Iniciado por nniki999, 17 Enero 2016, 22:17 PM

0 Miembros y 1 Visitante están viendo este tema.

nniki999

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

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!!

Eleкtro

#1
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 (dos) [Seleccionar]
@Echo OFF

Set "file=.\c_date.txt"

For /F "UseBackQ Tokens=* Delims=" %%# In ("%file%") Do (
Set "line=%%~#"
Call Set "line=%%line:~0,15%%"
Call Echo %%line%%
)

Pause&Exit /B 0


Saludos