Ms-Dos - Renombrar un archivo agregándole la fecha, hora y minuto

Me podrían apoyar con un .BAT para renombrar archivos, la situación es la siguiente...

Cada noche a las 00:30 horas Windows esta programado para que corra un SCRIPT en SAP y este descargue unos inventarios, cuando se hace todo el proceso, SAP me arroja el archivo "export.xlsx" en la ruta C:\Users\ALM9999\Documents\QUIMICOS y lo que busco es que el .BAT lo renombre a "Inventario de químicos DD-MM-AAAA"

Respuesta
3

Aunque en el título de tu consulta hablas de fecha, hora y minuto parece que el renombrado posterior no incluye la hora ni el minuto. Por otra parte supongo que quieres mantener la extensión XLSX del nuevo nombre. Mira a ver si esto te sirve:

@echo off
set carpeta=C:\Users\ALM9999\Documents\QUIMICOS
set archivo=export.xlsx
set aaaa=%Date:~6,4%
set mm=%Date:~3,2%
set dd=%Date:~0,2%
set hh=%Time:~0,2%
set mi=%Time:~3,2%
if %hh% lss 10 set hh=%hh: =0%
set nombrenuevo=Inventario de qu¡micos %dd%-%mm%-%aaaa%.xlsx
cd "%carpeta%"
Ren "%archivo%" "%nombrenuevo%"

Hay que hacer notar que estoy trabajando con el formato de DATE correspondiente al español de España que saca la fecha en formato dd-mm-aaaa. Con otra configuración regional habría que reajustar la definición de las variables AAAA, MM y DD al formato "regional". Puede verse abriendo una ventana CMD/Símbolo del sistema y tecleando en ella el comando DATE.

Otra cosa que puede chocar es que he sustituido la "í" de "químicos" por una "¡" (apertura de admiración). Es necesario porque el juego de caracteres de MSDOS es diferente del de Windows en los caracteres "especiales" del idioma.

Prueba y me dices como va.

Excelente, de echo tienes razón, en la descripción no me especifique bien ya que como mencionas solo quería que se renombrara con la fecha y no con las horas.

Así mismo aquí en mexico se maneja o manejo mejor dicho día/mes/año, solo una ultima cosa en el formato de fecha lo arroja ejemplo 28-01-2020, como se puede cambiar a 28-ENERO-2020?

Muchas gracias por el apoyo...

Prueba con esto:

@echo off
set carpeta=C:\Users\ALM9999\Documents\QUIMICOS
set archivo=export.xlsx
set aaaa=%Date:~6,4%
set mm=%Date:~3,2%
set dd=%Date:~0,2%
set /a mm=100%mm%%%100
set /a mm-=1
call :lista %mm% ENERO FEBRERO MARZO ABRIL MAYO JUNIO JULIO AGOSTO SEPTIEMBRE OCTUBRE NOVIEMBRE DICIEMBRE
set nombrenuevo=Inventario de qu¡micos %dd%-%mes%-%aaaa%.xlsx
cd "%carpeta%"
ren "%archivo%" "%nombrenuevo%"
pause
goto :EOF
:lista
for /l %%n in (1, 1, %1) do (shift /2)
set mes=%2
goto :EOF

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas