Crear archivo CSV con fecha desde CMD

Tengo un detalle con un archivo que estoy generando.

Estoy exportando una lista de usuarios de mi AD a un archivo csv (hasta aquí todo bien) sin embargo ahora tengo la necesidad de agregar la fecha (usuariosAD_20200903. Csv) sin embargo no logro ponerla dándome un resultado como usuariosAD%day%%month%%year%_%hour%%min%. Csv

He intentado de varias formas.

Mi script original es:

Get-ADUser -Filter {employeeID -like '*'} -Properties DisplayName, EmployeeID,  SamAccountName, EmailAddress, telephoneNumber, homePhone, mobile, officePhone, company, title, division, employeeType | Select EmployeeID, DisplayName, EmailAddress,  mobile, homePhone, telephoneNumber, division, company, title, SamAccountName, employeeType | Export-Csv C:\Interfaz_SAP\Users_AD_Direccion.csv

Y he intentado renombrar el archivo de la siguiente forma (entre algunas otras)

SET CURHOUR=%TIME:~0,2%

SET CURHOUR=%CURHOUR: =0%

set year=%date:~6,4%

set yr=%date:~8,2%

set month=%date:~3,2%

set day=%date:~0,2%

set hour=%time:~0,2%

set hour=%hour: =0%

set min=%time:~3,2%

set sec=%time:~6,2%

xcopy C:\Interfaz_SAP\Users_AD_Direccion.csv C:\Interfaz_SAP\Users_AD_Direccion_%day%%month%%year%_%hour%%min%.csv

Podrían ayudarme encontrar una solución para crear el archivo usuariosAD_20200903. Csv

1 Respuesta

Respuesta
1

Es importante conocer el formato de tu fecha/hora local (regional). Para eso basta con que teclees en una ventana CMD los comandos:

DATE

TIME

Si quieres una solución que no necesite conocer ese formato puede existir si el comando
Wmic os get localdatetime

Te da alguna respuesta.

Sin embargo, a partir de los comandos de ejemplo, te sugiero que pruebes este bat:

@echo off
set aaaa=%Date:~6%
set mm=%Date:~3,2%
set dd=%Date:~0,2%
set hh=%time:~0,2%
set mi=%time:~3,2%
set ss=%time:~6,2%
Echo la fecha es %dd%%mm%%aaaa% y la hora es %hh%%mi%%ss%
Echo ren UsuariosAD.csv UsuariosAD%dd%%mm%%aaaa%_%hh%%mi%. Csv

Así deberías ver si las variables tienen los valores esperados y si el comando REN (rename) tendría el formato adecuado. Si todo es correcto debe funcionar bien cuando le quites el ECHO a la última línea y se ejecute el comando de renombrado. Si quieres conservar el archivo original entonces puedes hacer un COPY o un XCOPY en lugar del REN

Al entrar a ver si había respuesta he visto que el formato que quieres es aaaammdd y no el que ponía yo ddmmaaaa. También que en tu caso parece que si el día o la hora son menores que 10 en lugar de un cero aparecería un espacio. En mi entorno no ocurre así pero si fuera ese el caso podría ser necesario quitar el REM a la línea de los IF.

@echo off
set aaaa=%Date:~6%
set mm=%Date:~3,2%
set dd=%Date:~0,2%
set hh=%time:~0,2%
set mi=%time:~3,2%
set ss=%time:~6,2%
rem (if %dd% LSS 10 set dd=0%dd%)&(if %hh% LSS 10 set hh=0%hh%)
Echo la fecha es %aaaa%%mm%%dd% y la hora es %hh%%mi%%ss%
Echo ren UsuariosAD.csv UsuariosAD%aaaa%%mm%%dd%_%hh%%mi%. Csv

Aprovecho para comentarte que si quieres que el código aparezca en una ventanita como la anterior uses el icono "<>" (snippet) de la página. También que la página a veces altera las líneas y, por ejemplo, pone un espacio entre el punto y el csv de la última línea.

¿Qué pasó con esta consulta? ¿Has resuelto tu problema?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas