Ir ao conteúdo

Criar Bat para mover arquivos para uma pasta acima


Ir à solução Resolvido por ricardo_br,

Posts recomendados

Postado

Pessoal, 

 

Preciso da ajuda de vocês rs 

 

Estou com dificuldades para criar uma .bat que atenda minha demanda, o que eu preciso é de uma .bat que mova todas as SUBPASTAS para um diretório acima: 

 

Exemplo: 

Dentro de: 

 

C:\teste 

 

Há outras pastas, (C:\teste\?\?) como  fazer para puxá-las para C:\teste? O fator importante aqui é que eu não sei quantas e quais são as pastas que estão dentro de C:\teste pra fazer o apontamento, uma vez que fazemos esse procedimento várias vezes e os nomes das subpastas variam de acordo com os pacotes. Sendo assim precisaríamos talvez criar uma bat com FOR e variável mas honestamente não consegui fazer isso

 

Grato, 

 

 

 

  • Membro VIP
Postado

Com o loop não te ajudo mas pra mover tudo como o título do tópico:

move *.* ..

funciona bem no xp pra baixo

 

Postado

Esse comando funcionária bem se eu tivesse o nome das pastas que estão dentro, poderia usar move C:\teste\? *.*  ..\  

Mas como eu tenho que "Descobrir" o nome das pastas que estão dentro isso já não serviria. 

 

 

  • Membro VIP
Postado

@Matheus Pimenta 97 Boa tarde

 

Sei só o básico de Dos mais não sei qual o tamanho das pastas que você pretende mover, mais se forem arquivos grandes e se forem importantes, eu copiaria e depois apareria o que estiver na origem.

xcopy \S C:\teste\*.* D:\teste\*.*

C:\teste\del *.*

Algo mais ou menos assim.

Falo em copiar porque se for algum arquivo grande e se der algum erro na hora de copiar, você não perde a origem.

Postado

@ricardo_br Na verdade o que preciso é que meu comando leia uma pasta da qual teoricamente eu não sei o nome, ou seja,  dentro de C:\ temos um estrutura de pastas C:\Teste\ ??? \ ??? 

Eu preciso de um comando que identifique as minhas pastas sem que eu as descreva na linha de comando. 

 

 

  • 3 meses depois...
Postado

@ricardo_br

boa noite, consegue me ajudar?

tenho varias pastas com "nomes diferentes" cada pasta separei milhares e milhares de arquivos por pastas separadas, uma pasta com mp4 outra com pdf outra com jpg outra com png, enfim muitas extenssoes, o que eu preciso é um bat parecido com esse ai em cima, mas sem identificar o caminho entende? vamos supor que a pastas estejam na area de trabalho preciso que ele seja executado ali e extraia de todas pastas deixando na pasta onde o bat esteja, se a pasta estiver em downloads eu apenas coloque o arquivo bat dentro da pasta e ele identifique o caminho automaticamente e tire todos os arquivos das pastas para pasta anterior onde o bat estiver, me ajude por favor.... agradecida...

  • 3 meses depois...
Postado

@ricardo_br Olá, Ricardo tudo bem? Teria como fazer um script para renomear o arquivo com o nome da pasta e posteriormente move-lo igual a este script que você fez? Se sim, poderia me ajudar a fazer?

Postado

@ricardo_br substituir o nome antigo do arquivo, pelo nome da pasta em que está inserido e posteriormente move-lo uma pasta acima, como o script que você fez p/ Fernanda

Postado

É isso mesmo que eu preciso, só existe uma aula dentro de casa pasta, se puder me ajudar por favor.. não sei como fazer 😪

@ricardo_br baixei um curso e estou organizando ele daí ele tem uma aula por pasta, quero deixar somente as aulas, porém os nomes dos arquivos em vídeo são diferentes das pastas e pra mudar isso manualmente fica inviável, são quase 1300

Postado

@FLzrx Veja se isso seria o resultado  esperado: NomePasta.gif

 

Na parte "set Fonte=" você deverá colocar o caminho onde estão as pastas das aulas.

 

@echo off

set Fonte=C:\Users\ricar\Desktop\Mover Arquivo Para mesmo nome da Pasta\Aulas

for /f "delims=" %%a in ('dir /b /ad "%Fonte%\*"') do for %%b in ("%Fonte%\%%a\*.*") do if not exist "%~dp0%%~na%%~xb" copy "%Fonte%\%%a\%%~nxb" "%~dp0%%~na%%~xb"
exit

 

Postado

@ricardo_br Inicialmente funcionou em uma pasta que criei na area de trabalho c/ arquivos aleatórios, mas na pasta das aulas não, ele diz que: O sistema não pode encontrar o arquivo especificado. Tem pastas que ao invés de uma aula em .mp4 tem um arquivo em .pdf

 

Já consegui resolver, era o nome da pasta com acentos 🤣

 

@ricardo_br Cara, agradeço de coração pela ajuda, ontem fiquei o dia todo quebrando a cabeça e pedindo ajuda em grupos no telegram e whatsapp e nínguem se ofereceu de me ajudar.. fora os que queriam cobrar por isso.. muito obrigado mesmo por dispor de seu tempo e ter me auxiliado! Deus lhe abençoe!

Postado

Para que funcione com acentos adicione chcp 1252 >nul

 

e ai vai em salvar como e em codificação coloque "ANSI"

 

WGHWZVE.png

 

@echo off
chcp 1252 >nul
set Fonte=C:\Users\ricar\Desktop\Mover Arquivo Para mesmo nome da Pasta\Aulas

for /f "delims=" %%a in ('dir /b /ad "%Fonte%\*"') do for %%b in ("%Fonte%\%%a\*.*") do if not exist "%~dp0%%~na%%~xb" copy "%Fonte%\%%a\%%~nxb" "%~dp0%%~na%%~xb"
exit

 

Postado

@ricardo_br Deu certo aqui! Só por curiosidade, no set fonte, teria como colocar o diretorio que ele está inserido? p/ não precisar ficar modificando o script? só jogar na pasta e executar?

Postado

@FLzrx Algo assim:

 

@echo off
chcp 1252 >nul
set /p "Fonte=Informe a pasta fonte: "

for /f "delims=" %%a in ('dir /b /ad "%Fonte%\*"') do for %%b in ("%Fonte%\%%a\*.*") do if not exist "%~dp0%%~na%%~xb" copy "%Fonte%\%%a\%%~nxb" "%~dp0%%~na%%~xb"
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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!