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