Ir ao conteúdo

Bat Juntar todos os arquivos de subpastas em uma pasta única


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

Olá ScripMaker's  !!!

 

Gostaria de vê com vocês essa forma,  tipo :

Tenho 1 pasta   com 20 SubPastas "e nessas 20 pastas contem 10 pastas cada, contendo arquivos em .PDF.

 

gostaria que, com um script mover todos os PDF para uma pasta única, deixando os PDF todos em 1 pasta só.

 

Desde de já, grato pela ajuda.

  • Solução
Postado

Tente esse código, so mudar essa parte:

 

set Origem=%userprofile%\desktop\Origem
set Destino=%userprofile%\desktop\Destino

 

@echo off
chcp 1252> Nul

set Origem=%userprofile%\desktop\Origem
set Destino=%userprofile%\desktop\Destino
set Tipo=.pdf

for /r %Origem% %%a in (*%Tipo%) do (
if /i exist "%Destino%\%%~nxa" (
set "Arquivo=%%~na"
set "Extencao=%%~xa"
set "Completo=%%a"
call :Renomear
)
if /i not exist "%Destino%\%%~nxa" copy "%%a" "%Destino%"
)

exit

:Renomear
for /l %%b in (1,1,100) do if /i not exist "%Destino%\%Arquivo%(%%b)%Extencao%" copy "%Completo%" "%Destino%\%Arquivo%(%%b)%Extencao%"& goto :EOF
goto :EOF

 

  • Obrigado 1
  • mês depois...
Postado

@ricardo_br

Bom dia

 

esse caminho funciona bem quando está em outro HD? e o scrip estiver no c :
porém já movi o scrip e não rodou.
Tipo 

 

@echo off
chcp 1252> Nul

set Origem=G:\Users\Ricardo\Documents\5000ª integração\12.15.41-50- PDF UNIFICADO ok
set Destino=G:\Users\Ricardo\Documents\5000ª integração\
set Tipo=.pdf

for /r %Origem% %%a in (*%Tipo%) do (
if /i exist "%Destino%\%%~nxa" (
set "Arquivo=%%~na"
set "Extencao=%%~xa"
set "Completo=%%a"
call :Renomear
)
if /i not exist "%Destino%\%%~nxa" copy "%%a" "%Destino%"
)

exit

:Renomear
for /l %%b in (1,1,100) do if /i not exist "%Destino%\%Arquivo%(%%b)%Extencao%" copy "%Completo%" "%Destino%\%Arquivo%(%%b)%Extencao%"& goto :EOF
goto :EOF

 

  • 2 meses depois...
Postado

@ricardo_br

 

Opa Ricardo.

mesmo salvando em ANSI, e sem barra no final,
quando se está em outro HD não continua o processo.

 

 

@echo off
chcp 1252> Nul

set Origem=G:\Users\Ricardo\Documents\REALIZAR IMPORTAÇÃO DE ARQUIVOS EBSERH\
set Destino=G:\Users\Ricardo\Documents\1 Importacao OS30\
set Tipo=.pdf

for /r %Origem% %%a in (*%Tipo%) do (
if /i exist "%Destino%\%%~nxa" (
set "Arquivo=%%~na"
set "Extencao=%%~xa"
set "Completo=%%a"
call :Renomear
)
if /i not exist "%Destino%\%%~nxa" copy "%%a" "%Destino%"
)

exit

:Renomear
for /l %%b in (1,1,100) do if /i not exist "%Destino%\%Arquivo%(%%b)%Extencao%" copy "%Completo%" "%Destino%\%Arquivo%(%%b)%Extencao%"& goto :EOF
goto :EOF

Postado

Eu testei aqui Colocando Origem e Destino em "D:", Origem em "D:" e Destino em "c:", Copiar o bat para "d:" e todos deram certo.

 

Poderia colocar um pause antes do "exit" para ver quais mensagens de erro aparecem?

  • Obrigado 1
  • 3 meses depois...

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