edummoreno Posted November 24, 2022 Posted November 24, 2022 Olá, Tenho muitos diretórios com muitos arquivos que fiz de uma recuperação em um HD, estou desenvolvendo um fonte em C, e talvez envolva batch script, Basicamente tenho um pasta Por Exemplo: Documentos\pasta1, Documentos\Pasta2, esse batch ou programa em c entraria em cada pasta pegaria todos os arquivos da pasta e enviaria para o diretório anterior em Batch seria algo assim @echo off cd Pasta1 move * ..\ cd ..\ ele entra na pasta envia tudo para o diretório anterior e volta, ai colocaria dentro de um loop que faria pasta1, pasta2, pasta3... etc, só que o ponto é precisaria criar um variável em batch ou em Linguagem C que gerasse todas as combinações possíveis de nomes, exemplo a b c, aa, ab, ac, ba, bb, bc, aaa, aab, aac ... e por ai vai gerando todas as combinações possíveis, assim ele tentaria entrar em todos os nomes possíveis até que em um momento sei lá na tentativa 10mil entraria na pasta doc, fazendo isso na força bruta de processamento, entendo que gerar todas as combinações possíveis com a Tabela ASCII por exemplo com um nome de tamanho 6 seria igual a 255 Fatorial, talvez nem seja viável isso... uma segunda opção seria dar um comando DIR e salvar todos os nomes das pastas numa variável e fazer isso, porém como sou iniciante tanto em c quanto em Batch script não sei bem como fazer isso. se você entende de C ou Batch se puder dar uma luz, ou conheça algum programa que já faça isso. Quote
fredericopissarra Posted November 25, 2022 Posted November 25, 2022 (edited) ??? Edited November 25, 2022 by fredericopissarra Quote
Administrators Fernando Mercês Posted November 27, 2022 Administrators Posted November 27, 2022 @edummoreno se entendi bem, você quer copiar todos os arquivos de uma pasta para uma pasta um nível acima. Neste caso, não precisa descobrir os nomes de arquivos com força bruta (tentar todas as possibilidades até acertar), nem mesmo entrar na pasta. A partir da pasta destino dos arquivos, você faz (em batch): copy pasta1\*.* . copy pasta2\*.* . O “asterisco ponto asterisco” expande para todos os arquivos do diretório. Já o "ponto" significa "diretório atual". Isso resolve seu problema? Abraço! Quote
edummoreno Posted December 12, 2022 Author Posted December 12, 2022 (edited) é isso mesmo, até que e uma solução bem simples e inteligente, deu quase certo, mas o problema que ainda tenho que digitar o nome do diretório pasta1, pasta2 que foi só um exemplo, posso ter diretórios com nome jpg, bmp, e uns com uns nomes assim [0001].rebuilt, ou seja vários nomes, se eu digitar o nome exato da pasta ele vai mas esse que é o problema, ao invés de copy pasta1\*.* . se tivesse algo assim hipotético assim copy * \*.* . onde o * pega todos os diretórios. Edited December 12, 2022 by edummoreno Quote
Administrators Fernando Mercês Posted December 14, 2022 Administrators Posted December 14, 2022 Ah, você precisa do xcopy então. O xcopy copia um diretório e todos os seus subdiretórios e arquivos para um dado destino. Isto é chamado de cópia recursiva. 😉 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.