Ir ao conteúdo

Bat Criar bat para mover arquivos e subpastas


Ir à solução Resolvido por Attilio Brandi,

Posts recomendados

Postado

Bom dia pessoal, gostaria de criar uma bat para mover todos os arquivos menos os de hoje, eu consegui criar uma, porém quando tem outras pastas dentro ele não esta movendo, tentei fazer o seguinte:

 

@echo off

set Fonte=C:\Users\attilio.neto\Desktop\Teste_move1\Pasta1\*.*
set Destino=C:\Users\attilio.neto\Desktop\Teste_move2\Pasta1\

set Fonte=C:\Users\attilio.neto\Desktop\Teste_move1\Pasta2\*.*

set Destino=C:\Users\attilio.neto\Desktop\Teste_move2\Pasta2\

robocopy "%Fonte%" "%Destino%" /move /minage:1

exit



Mas não rolou...resumindo neste exemplo precisava mover todo o conteudo da pasta \Teste_move1\ com todas as suas subpastas dentro para a Teste_move2.

 

alguém sabe como pode ser feito?

Postado

sempre que você for usar set no batch, use aspas antes e depois da variável.

assim:

set "nome = x:\y\z\w"

 

acho que seu código fica mais ou menos assim, não testei:

 

 

set "caminho=C:\Users\attilio.neto\Desktop\Teste_move1\Pasta1\*"
set "destino=C:\Users\attilio.neto\Desktop\Teste_move2\Pasta1\*"
forfiles /P "%caminho%" /M * /D -1 /C "cmd /c if not @isdir @filedate ^>"%date:~10,4%-%date:~4,2%-%date:~7,2%"^" move /Y @path "%destino%""

 

código do mestre @ricardo_br, colei dele e mudei algumas coisas, plágio jamais.

  • Solução
Postado

Ainda não funcionou, tentei assim, mas não copia...do jeito que fiz anteriormente copiava apenas os da primeira pasta.

 

set "caminho=C:\Users\attilio.neto\Desktop\Teste_move\Pasta1"
set "destino=C:\Users\attilio.neto\Desktop\Teste_move1\Pasta1"
set "caminho=C:\Users\attilio.neto\Desktop\teste_move\pasta2"
set "destino=C:\Users\attilio.neto\Desktop\Teste_move1\pasta2"
forfiles /P "%caminho%" /M * /D -1 /C "cmd /c if not @isdir @filedate ^>"%date:~10,4%-%date:~4,2%-%date:~7,2%"^" move /Y @path "%destino%""

 

Consegui fazer mover o conteudo de maneira mais simples, porém não está respeitando as datas, não quero que mova os de hoje...fiz assim, ele moveu todos incluindo os de hoje:

 

@echo off
move C:\Users\attilio.neto\Desktop\teste_move\pasta1\*.* C:\Users\attilio.neto\Desktop\teste_move1\pasta1
move C:\Users\attilio.neto\Desktop\teste_move\Pasta2\*.* C:\Users\attilio.neto\Desktop\Teste_move1\pasta2
/M * /D -1 /C "cmd /c if not @isdir @filedate ^>"%date:~10,4%-%date:~4,2%-%date:~7,2%"^"

 

Boa tarde pessoal, consegui....mas precisei repetir as linhas...segue como montei:

 

@echo off 
set Fonte=C:\Users\attilio.neto\Desktop\teste_move\pasta1
set Destino=C:\Users\attilio.neto\Desktop\Teste_move1\pasta1 
robocopy "%Fonte%" "%Destino%" /move /minage:1

set Fonte=C:\Users\attilio.neto\Desktop\teste_move\pasta2
set Destino=C:\Users\attilio.neto\Desktop\Teste_move1\pasta2
robocopy "%Fonte%" "%Destino%" /move /minage:1 exit

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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