edummoreno Postado Novembro 24, 2022 em 23:11 Compartilhar Postado Novembro 24, 2022 em 23:11 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
fredericopissarra Postado Novembro 25, 2022 em 12:19 Compartilhar Postado Novembro 25, 2022 em 12:19 (editado) ??? Editado Novembro 25, 2022 em 12:20 por fredericopissarra Citar Link para o comentário Compartilhar em outros sites More sharing options...
Fernando Mercês Postado Novembro 27, 2022 em 10:58 Compartilhar Postado Novembro 27, 2022 em 10:58 @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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
edummoreno Postado Dezembro 12, 2022 em 20:27 Autor Compartilhar Postado Dezembro 12, 2022 em 20:27 (editado) é 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. Editado Dezembro 12, 2022 em 20:28 por edummoreno Citar Link para o comentário Compartilhar em outros sites More sharing options...
Fernando Mercês Postado Dezembro 14, 2022 em 21:41 Compartilhar Postado Dezembro 14, 2022 em 21:41 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. 😉 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.