Base de coneixement
ADS Anàlisi/Disseny de Soft, S.L.U.
Buscar:     Búsqueda avanzada
Navegar por categorías:

Generar Arxius amb Data/Hora des d'un CMD o BAT.

Visitas: 504
Posted: 11. August 2020
by: Admin A.
Updated: 11. August 2020
by: Admin A.

Generar Ficheros con Fecha/Hora desde un CMD

Posted by Alberto Robledo en octubre 23, 2008

No se si alguna vez os habréis encontrado con la necesidad de generar un fichero, a modo de log, con la fecha del día correspondiente, o la hora.

Puedes aprovechar la gestión de texto en cualquier variable de entorno. Vamos allá: En nuestro caso, utilizaremos el operador :~a,b, llamándole al final de la variable de entorno, y antes del último %.

Os explico su funcionamiento ya que es bastante complejo: El operador :~a,b se compone, como es evidente, de dos números, ‘a’ y ‘b’, tales que:

  • El número ‘a’ indica el inicio del texto a partir del que se obtiene el valor deseado (la primera posición es ‘0’), y
  • El número ‘b’ indica el número de caracteres que se desean tomar de dicho texto. Cabe destacar que, si ‘b’ es positivo, el texto indica las posiciones  tomadas desde el carácter número ‘a’ (inclusive) en adelante, y si ‘b’ es negativo, indica las posiciones tomadas desde el final del texto, hacia atrás, y hasta el número ‘a’

Como muestra, un botón. Generaremos nuestra variable de entorno del siguiente modo: set Texto=0123456789

Probaremos primero hacia delante:

  • Para obtener dos posiciones desde la quinta (+1 ya que empezamos en 0): echo %Texto:~5,2%, que nos devuelve el texto ‘56‘.
  • Para obtener tres posiciones, escribiremos echo %Texto:~5,3% que nos devuelve el texto ‘567‘…

Y ahora, hacia atrás:

  • Para eliminar los dos últimos carácteres, escribiremos echo %Texto:~5,-2% , lo que devuelve ‘567‘ (se “ha cargado” los dos últimos caracteres, ‘8’ y ‘9’),
  • Para eliminar el último carácter, escribiremos echo %Texto:~5,-1%… que devolverá ‘5678‘ ya que elimina el último carácter, el ‘9’.

Se le puede sacar el máximo jugo al operador anterior con las variables de entorno de hora y tiempo, y sobre todo en scripts de comandos. Por ejemplo, con una variable %Date% con valor 23/10/2008, tendremos que:

  • Echo %Date:~0,2% nos devolverá el día, ‘23‘,
  • Echo %Date:~3,2% nos devolverá el mes, ‘10‘, y
  • Echo %Date:~6,4% nos devolverá el año, ‘2008‘.

Lo mismo es aplicable a la hora: Con una variable %Time% con valor 14:08:09,52 tendremos que:

  • Echo %Time:~0,2% nos devolverá la hora, ‘14‘,
  • Echo %Time:~3,2% nos devolverá los minutos, ‘08‘, y
  • Echo %Time:~6,5% nos devolverá los segundos, ‘09,52‘.

Una vez entendido todo esto, podéis pasar a generar un fichero de texto de nombre, por ejemplo, “Log<FECHA><HORA>.log” de este modo:

  • Set Fecha=%Date:~0,2%%Date:~3,2%
  • Set Hora=%Time:~0,2%%Time:~3,2%
  • Echo “Texto Deseado” > Log%Fecha%%Hora%.log

Con las tres líneas anteriores se debe haber generado un fichero de texto de nombre Log23101408.log.

Puede ser complejo de entender, pero a mí me ha salvado ya de más de una… Con lo que os recomiendo que practiquéis, ya que un simple trozo de texto puede dar una potencia brutal a vuestros CMD.




RSS