Ms-Dos - Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

 
Vista:
sin imagen de perfil

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Joels (4 intervenciones) el 07/10/2016 12:25:29
Buenos días craks!
Gracias de antemano por vuestra ayuda!

Os comento, necesito crear un ejecutable que cree una carpeta con la fecha y hora del momento que se ejectua y en esa carpeta que se copien unos archivos con xcopy.

Tengo esto, que es pura teorría:

1
2
3
4
5
@echo off
cd C:\Arco\
MKDIR %date:~0,2%%date:~3,2%%date:~6,4%-%Time:~0,2%%Time:~3,2%
cd C:\Molina\
xcopy . C:\Arco\ *****  /v /e /f /h /y

Entiendo que en los *** deberia ir la ultima carpeta creada pero no se como decirle que lo copie ahí.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Antoni Masana (811 intervenciones) el 07/10/2016 13:32:23
Es asi de simple:

1
2
3
4
5
@echo off
SET DIr_Orig=C:\Molina
SET Dir_Dest=C:\Arco\%date:~0,2%%date:~3,2%%date:~6,4%-%Time:~0,2%%Time:~3,2%
MKDIR %Dir_Dest%
XCOPY %Dir_Orig\*.* %Dir_Dest%\. /v /e /f /h /y

NOTA: un comentario que a la larga va muy bien. En lugar de crear el directorio:

C:\Arco\DDMMAAAA-HHMM

Hacerlo en formato, porque ordena por fecha directamente

C:\Arco\AAAAMMDD-HHMM


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Joels (4 intervenciones) el 07/10/2016 13:47:22
Hola! Mil gracias!
Lo he probado y funciona a medias... Jejeje!
Te crea la carpeta pero no copia nada en ella.... pone que no encuentra el archivo: Dir_dest

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Antoni Masana (811 intervenciones) el 09/10/2016 08:53:51
Ne he olvidado un carácter de porcentaje.

El la ultima linea y antes de la barra le falta el %


1
2
3
4
5
@echo off
SET DIr_Orig=C:\Molina
SET Dir_Dest=C:\Arco\%date:~0,2%%date:~3,2%%date:~6,4%-%Time:~0,2%%Time:~3,2%
MKDIR %Dir_Dest%
XCOPY %Dir_Orig%\*.* %Dir_Dest%\. /v /e /f /h /y

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Joels (4 intervenciones) el 10/10/2016 10:54:37
Hola Antoni!
Muchas gracias ya funciona!!! aunque tube que poner Dir en vez de DIr... jejeje
Lo curioso es que la semana pasada me creaba la carpeta con fecha y hora, cuando lo he ejecutado me crea dos carpetas, una con la fecha y otra con la hora, no se que ha podido pasar, despues de hacer pruebas me di cuenta que lo causa el de la hora "%Time:~0,2%".
Así que lo he hecho ha sido dejar fecha y minuto... jajajaja.

Lo dicho, mil gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Antoni Masana (811 intervenciones) el 10/10/2016 13:24:36
Es un problema del S.O. que es más tonto que una pandereta.

Si dejas espacios en el nombre de los directorios tienes que poner algunas comillas dobles:

1
2
3
4
5
@echo off
SET Orig=C:\Molina
SET Dest=C:\Arco\%date:~0,2%%date:~3,2%%date:~6,4% %Time:~0,2%%Time:~3,2%
MKDIR "%Dest%"
XCOPY "%Orig%\*.*" "%Dest%\." /v /e /f /h /y

Esto crea el directorio:

1
C:\Arco\10-10-2016 13:21>

Y lo del Dir o DIr como la pandereta el MS-DOS no distingue mayusculas y minusculas funciona igual de bien.
Para él la variable %DIR% es la misma que %dir%

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Joels (4 intervenciones) el 10/10/2016 14:18:09
Genial bro! Muchas gracias por la explicación.
Un abrazo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Lorenzo (2 intervenciones) el 22/09/2021 08:25:13
Hola!

Voy a aprovechar esta intervención.
Además de realizar la copia registrando cada día en el nombre de la carpeta como hace en el ejemplo, querría que sólo mantuviera siete copias, una por cada día de la semana, sobrescribiéndose el día que corresponda, de tal manera que tengamos la copia del lunes, la copia del martes, la copia del viernes...

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Antoni Masana (811 intervenciones) el 22/09/2021 15:27:25
Es mejor abrir una nueva consulta que realizarla en una vieja.
Dicho esto esta es la rutina para guardar un numero limitado de archivos o directorios.

Este es para guardar los últimos 7 directorios que empiezan por Direc:

1
2
3
4
5
6
7
8
9
@echo off
 
rem ------------------------------------------------------------------------------
rem --- Guarda los 7 últimos directorios que empiezan por Direc
rem ------------------------------------------------------------------------------
 
dir /B /OD Direc* >@_Borrar.tmp
for /F "skip=7" %%a in (@_Borrar.tmp) do RD %%a /S /Q
del @_Borrar.tmp


Este es para guardar los últimos 7 ficheros:

1
2
3
4
5
6
7
8
9
10
11
@echo off
 
set Destino_Bck=C:\Mi_Directorio
 
rem ------------------------------------------------------------------------------
rem --- Guarda los 7 últimos días de Backup Ficheros ZIP
rem ------------------------------------------------------------------------------
 
dir /B /O-D %Destino_Bck%\*.zip >@_Borrar.tmp
for /F "skip=7" %%a in (@_Borrar.tmp) do del %Destino_Bck%\%%a
del @_Borrar.tmp



Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Lorenzo (2 intervenciones) el 24/09/2021 06:26:16
Hola de nuevo,

Hice una consulta sobre esta porque lo que necesito es una modificación de tu anterior script. Es decir, partiendo de:

@echo off
SET Orig=C:\Molina
SET Dest=C:\Arco\%date:~0,2%%date:~3,2%%date:~6,4% %Time:~0,2%%Time:~3,2%
MKDIR "%Dest%"
XCOPY "%Orig%\*.*" "%Dest%\." /v /e /f /h /y

Lo que quiero hacer (por ejemplo) es que cree un nuevo directorio para cada día de la semana, uno para el lunes, martes, miércoles, jueves y viernes. Cuando llegue al viernes necesito que se salte el fin de semana y cuando llegue el lunes sobrescriba la carpeta correspondiente, para así tener un backup de cada día de la semana. De tal manera, por ejemplo la copia de la semana que viene quedaría:

C:\Arco\27-09-2021 00:00>
C:\Arco\28-09-2021 00:00>
C:\Arco\29-09-2021 00:00>
C:\Arco\30-09-2021 00:00>
C:\Arco\01-10-2021 00:00>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Antoni Masana (811 intervenciones) el 27/09/2021 18:20:09
Esto te mantiene los directorios de los últimos 5 días

1
2
3
4
5
6
7
8
9
@echo off
SET Orig=C:\Molina
SET Dest=C:\Arco\%date:~0,2%%date:~3,2%%date:~6,4% %Time:~0,2%%Time:~3,2%
MKDIR "%Dest%"
XCOPY "%Orig%\*.*" "%Dest%\." /v /e /f /h /y
 
dir /B /O-D C:\Arco\??-??-20* >@_Borrar.tmp
for /F "skip=5" %%a in (@_Borrar.tmp) do del %Destino_Bck%\%%a
del @_Borrar.tmp

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Eulices Nicot capdezuñer (1 intervención) el 11/02/2020 17:03:29
Y si quisiera que la carpeta tenga por nombre el dia de la semana completo, es decir lunes martes... y no lu, ma,....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Crear una carpeta con la fecha y hora y copiar en la misma un archivo con cmd

Publicado por Antoni Masana (811 intervenciones) el 11/02/2020 20:43:57
Esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
 
: ================================================================================
: ---&--- Dia de la semana con Visual Basic Script
: ================================================================================
 
echo Newdate = (Date())            >%temp%\newdate.vbs
echo Week = datepart("W", Newdate)>>%temp%\newdate.vbs
echo Wscript.Echo Week            >>%temp%\newdate.vbs
 
FOR /F %%A in ('cscript //nologo %temp%\newdate.vbs') do set weekday#=%%A
FOR /F "tokens=%weekday#%" %%a in ("Dom Lun Mar Mie Jue Vie Sab") do set Day=%%a
 
DEL %temp%\newdate.vbs
 
echo %Day%


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar