Arquivo em lotes simples do Windows que copia um arquivo para uma pasta e cria uma subpasta com timestamp

3

Eu tenho um arquivo em:

c:\source\hello.txt

Que eu quero fazer backup como eu modifico frequentemente, aqui:

c:\backups\source\????\hello.txt

Como posso criar um arquivo .bat para fazer isso?

Eu quero que o script crie de alguma forma uma subpasta com a data e a hora atuais, para que, quando eu visualizar as pastas, ela seja ordenada para que eu possa obter as últimas ou voltar no tempo facilmente.

    
por codecompleting 19.12.2011 / 18:26

2 respostas

4

Como obter uma idéia principal de aqui :

@echo off
set hh=%time:~-11,2%
set /a hh=%hh%+100
set hh=%hh:~1%
set dateseed=%date:~10,4%%date:~4,2%%date:~7,2%_%hh%%time:~3,2%%time:~6,2%

if not exist "c:\backups\source\%dateseed%" mkdir "c:\backups\source\%dateseed%"
cd "c:\backups\source\%dateseed%"
copy "c:\source\hello.txt" .

Ele criará uma pasta chamada yyyymmdd_hhmmss (hh no formato de 24 horas).

Você também pode verificar copy /? para outras opções.

Se você estiver trabalhando com arquivos ou pastas diferentes de C: , adicione uma linha para alterar a unidade antes de tentar transformar uma pasta ou alterar dir em um.

    
por 19.12.2011 / 19:10
0

como fazer seu script, para copiar um arquivo em dois destinos diferentes. mas o arquivo não é copiado na pasta 2.

O que eu fiz é:

@echo off
set hh=%time:~-11,2%
set /a hh=%hh%+100
set hh=%hh:~1%
set dateseed=%date:~10,4%%date:~4,2%%date:~7,2%_%hh%%time:~3,2%%time:~6,2%

if not exist "c:\backups\source\%dateseed%" mkdir "c:\backups\source\%dateseed%"
cd "c:\backups\source\%dateseed%"
copy "c:\source\hello.txt" .

if not exist "c:\backups2\source\%dateseed%" mkdir "c:\backups\source\%dateseed%"
cd "c:\backups2\source\%dateseed%"
copy "c:\source\hello.txt
    
por 11.11.2014 / 08:20