edummoreno Posted November 24, 2022 at 11:11 PM Share Posted November 24, 2022 at 11:11 PM 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 Link to comment Share on other sites More sharing options...
fredericopissarra Posted November 25, 2022 at 12:19 PM Share Posted November 25, 2022 at 12:19 PM (edited) ??? Edited November 25, 2022 at 12:20 PM by fredericopissarra Quote Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted November 27, 2022 at 10:58 AM Administrators Share Posted November 27, 2022 at 10:58 AM @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 Link to comment Share on other sites More sharing options...
edummoreno Posted December 12, 2022 at 08:27 PM Author Share Posted December 12, 2022 at 08:27 PM (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 at 08:28 PM by edummoreno Quote Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted December 14, 2022 at 09:41 PM Administrators Share Posted December 14, 2022 at 09:41 PM 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 Link to comment Share on other sites More sharing options...
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.