Ir ao conteúdo

Backup bat com data na pasta


caiogr

Posts recomendados

Postado

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

Postado
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.

Postado
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

Postado

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.

Postado
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.

Postado
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

Postado
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

Postado
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!

Postado
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.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!