Ir ao conteúdo
  • Cadastre-se

Backup bat com data na pasta


caiogr

Posts recomendados

Estou desenvolvendo um bat para fazer backup de pastas e arquivos.

Os arquivos devem ser salvos em uma pasta com a data do dia do backup.

Fiz da seguinte forma ele executa mas não copia.

Quando eu coloco para fazer a copia numa pasta ja existente funciona.

set nomepasta=%date%

mkdir C:\%nomepasta%

cd\

cd honeywell

xcopy *.* c:\%nomepasta%\ /a /e /k

Grato

Caio Grecco

Link para o comentário
Compartilhar em outros sites

Estou desenvolvendo um bat para fazer backup de pastas e arquivos.

Os arquivos devem ser salvos em uma pasta com a data do dia do backup.

Fiz da seguinte forma ele executa mas não copia.

Quando eu coloco para fazer a copia numa pasta ja existente funciona.

set nomepasta=%date%

mkdir C:\%nomepasta%

cd\

cd honeywell

xcopy *.* c:\%nomepasta%\ /a /e /k

Grato

Caio Grecco

Olah CaioGr.

Não deixei de observar que existem erros em teu bat, pois cada vez que voce for "becapear" o comandu mkdir vai sobrescrever a pasta criada anteriormente, outro, o comandu Set deve usar parametro du comandu "If" tipo "if %date% less than" "goto "mkdir"

Não informaste o caminho de destino para o xcopy;

[Code:

set nomepasta=%date%

mkdir C:\%nomepasta%%date%

cd\

cd honeywell

xcopy *.* c:\%nomepasta%\ /a /e /k C:\%nomepasta%%date%]

Não sei se vai funcionar da forma acima, nao custa tentar.

Não deixe de ter boa sorte.

Leonam.

Link para o comentário
Compartilhar em outros sites

Olah CaioGr.

Não deixei de observar que existem erros em teu bat, pois cada vez que voce for "becapear" o comandu mkdir vai sobrescrever a pasta criada anteriormente, outro, o comandu Set deve usar parametro du comandu "If" tipo "if %date% less than" "goto "mkdir"

Não informaste o caminho de destino para o xcopy;

[Code:

set nomepasta=%date%

mkdir C:\%nomepasta%%date%

cd\

cd honeywell

xcopy *.* c:\%nomepasta%\ /a /e /k C:\%nomepasta%%date%]

Não sei se vai funcionar da forma acima, nao custa tentar.

Não deixe de ter boa sorte.

Leonam.

Não funcionou ele esta criando 3 pastas agora 1 com a data a outra com a data e o dia da semana e a ultima com o dia da semana.

E ele não copia nada.

Grato

Caio Grecco

Link para o comentário
Compartilhar em outros sites

Certamente isso não dará certo.

A forma com que o Windows mostra a data e hora contem caracteres que não podem ser usados como nome de pastas ou arquivos.

Você tem que trabalhar em cima da data, exemplo:

@echo off

set dia=%date:~4,2%

set mes=%date:~7,2%

if %mes%==01 set mes=Jan

if %mes%==02 set mes=Fev

if %mes%==03 set mes=Mar

if %mes%==04 set mes=Abr

if %mes%==05 set mes=Mai

if %mes%==06 set mes=Jun

if %mes%==07 set mes=Jul

if %mes%==08 set mes=Ago

if %mes%==09 set mes=Set

if %mes%==10 set mes=Out

if %mes%==11 set mes=Nov

if %mes%==12 set mes=Dez

set ano=%date:~10,4%

set hora=%time:~0,2%

if "%hora:~0,1%"==" " set hora=0%time:~1,1%

set minuto=%time:~3,2%

md "%dia%-%mes%-%ano%"

Lembrando que isso SÓ funciona no Windows XP.

Para fazer funcionar no Seven o comando deve ser trabalhado de forma diferente.

Link para o comentário
Compartilhar em outros sites

Certamente isso não dará certo.

A forma com que o Windows mostra a data e hora contem caracteres que não podem ser usados como nome de pastas ou arquivos.

Você tem que trabalhar em cima da data, exemplo:

@echo off

set dia=%date:~4,2%

set mes=%date:~7,2%

if %mes%==01 set mes=Jan

if %mes%==02 set mes=Fev

if %mes%==03 set mes=Mar

if %mes%==04 set mes=Abr

if %mes%==05 set mes=Mai

if %mes%==06 set mes=Jun

if %mes%==07 set mes=Jul

if %mes%==08 set mes=Ago

if %mes%==09 set mes=Set

if %mes%==10 set mes=Out

if %mes%==11 set mes=Nov

if %mes%==12 set mes=Dez

set ano=%date:~10,4%

set hora=%time:~0,2%

if "%hora:~0,1%"==" " set hora=0%time:~1,1%

set minuto=%time:~3,2%

md "%dia%-%mes%-%ano%"

Lembrando que isso SÓ funciona no Windows XP.

Para fazer funcionar no Seven o comando deve ser trabalhado de forma diferente.

Olah a Ambos!

Não deixe de tentar melhorar este tipo bat para copiar dadus:

[Code:

@echo off (inicio)

FOR /D %s IN (C:\Teste1\*) DO @COPY /Y %sDAT*.* C:\Teste2

echo. (exibe mensagem)

end (finaliza)

Exit (saída de DOS). ]

Não deixe de ter boa sorte.

Leonam.

Link para o comentário
Compartilhar em outros sites

Olah a Ambos!

Não deixe de tentar melhorar este tipo bat para copiar dadus:

[Code:

@echo off (inicio)

FOR /D %s IN (C:\Teste1\*) DO @COPY /Y %sDAT*.* C:\Teste2

echo. (exibe mensagem)

end (finaliza)

Exit (saída de DOS). ]

Não deixe de ter boa sorte.

Leonam.

Consegui criar a pasta corretamente da maneira que o Ph4n70m disse.

Muito Grato

Agora estou com duvidas para fazer a copia nao entendi muito bem o que você disse leonam teria msn ou skype para conversarmos melhor ?

Grato

Caio Grecco

Link para o comentário
Compartilhar em outros sites

Consegui criar a pasta corretamente da maneira que o Ph4n70m disse.

Muito Grato

Agora estou com duvidas para fazer a copia nao entendi muito bem o que você disse leonam teria msn ou skype para conversarmos melhor ?

Grato

Caio Grecco

Para copiar os arquivos, você pode tentar o seguinte:


echo off
set dia=%date:~4,2%
set mes=%date:~7,2%
if %mes%==01 set mes=Jan
if %mes%==02 set mes=Fev
if %mes%==03 set mes=Mar
if %mes%==04 set mes=Abr
if %mes%==05 set mes=Mai
if %mes%==06 set mes=Jun
if %mes%==07 set mes=Jul
if %mes%==08 set mes=Ago
if %mes%==09 set mes=Set
if %mes%==10 set mes=Out
if %mes%==11 set mes=Nov
if %mes%==12 set mes=Dez
set ano=%date:~10,4%
set hora=%time:~0,2%
if "%hora:~0,1%"==" " set hora=0%time:~1,1%
set minuto=%time:~3,2%

md "C:\Backups\%dia%-%mes%-%ano%"

set pasta_origem=C:\Documentos
set pasta_destino=C:\Backups\%dia%-%mes%-%ano%

xcopy /e /c /h "%pasta_origem%\*.*" "%pasta_destino%"

Claro, adapte ao seu gosto.

Usei os parâmetros para o seguinte:

/e - Copia todas as subpastas, inclusive vazias

/c - Continua copiando mesmo que haja erros

/h - Copia também arquivos ocultos e de sistema

Caso queira ver mais comandos do xcopy, abra o prompt de comando e digite xcopy /?

Abraços!

Link para o comentário
Compartilhar em outros sites

Para copiar os arquivos, você pode tentar o seguinte:


echo off
set dia=%date:~4,2%
set mes=%date:~7,2%
if %mes%==01 set mes=Jan
if %mes%==02 set mes=Fev
if %mes%==03 set mes=Mar
if %mes%==04 set mes=Abr
if %mes%==05 set mes=Mai
if %mes%==06 set mes=Jun
if %mes%==07 set mes=Jul
if %mes%==08 set mes=Ago
if %mes%==09 set mes=Set
if %mes%==10 set mes=Out
if %mes%==11 set mes=Nov
if %mes%==12 set mes=Dez
set ano=%date:~10,4%
set hora=%time:~0,2%
if "%hora:~0,1%"==" " set hora=0%time:~1,1%
set minuto=%time:~3,2%

md "C:\Backups\%dia%-%mes%-%ano%"

set pasta_origem=C:\Documentos
set pasta_destino=C:\Backups\%dia%-%mes%-%ano%

xcopy /e /c /h "%pasta_origem%\*.*" "%pasta_destino%"

Claro, adapte ao seu gosto.

Usei os parâmetros para o seguinte:

/e - Copia todas as subpastas, inclusive vazias

/c - Continua copiando mesmo que haja erros

/h - Copia também arquivos ocultos e de sistema

Caso queira ver mais comandos do xcopy, abra o prompt de comando e digite xcopy /?

Abraços!

Olah Phanton, estilizadu hein.

Não és fraco não, beleza de bat, congratulations.

O Bat que postei refere-se a copiar dados em Rede, peço ao amigo Caio Grecco - desculpas.

Abs.

Leonam.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...