inline-command para mover todos os arquivos, diretórios e subdiretórios

1

Estou tentando criar um arquivo de lote que deve mover arquivos e diretórios + todos os subdiretórios de um local para outro

Por exemplo, digamos que eu tenha estes:

C:\Source\abc.files  
C:\Source\Dir1\abc2.files  
C:\Source\Dir1\Sub1\abc3.files  
C:\Source\Dir2\xyz.files  

Quando eu uso move C:\Source\*.* C:\Dest\ ONLY abc.files aparecem na pasta de destino. Eu preciso de todo o conteúdo do diretório Source com todos os seus subdiretórios

soluções de terceiros (além do DOS) são OK ... se elas são livres e livres de vírus. =)

    
por Omar 12.05.2018 / 08:20

1 resposta

1

Você está com dois problemas aqui.

A primeira é que você disse a move para copiar apenas os arquivos que possuem um nome que corresponda ao padrão *.* . Dir1 e Dir2 ambos não correspondem a *.* . (Nem tem um " . " (ponto) no nome). @Seth apontou isso em um comentário em seu post original.

O segundo problema é que move não tem comportamento sane (imho) quando você pede para mover uma pasta e um arquivo ao mesmo tempo. Mover simplesmente se recusa a mover uma pasta, se alguma coisa está tentando ser movida ao mesmo tempo:

Move um dir para outro diretório:

move C:\Source\Dir1 C:\Dest\

(agora C:\Dest\Dir1 existe)

Move apenas arquivos no nível superior dentro de C:\Source\ :

move C:\Source\* C:\Dest\

(agora C:\Dest\abc.files existe)

Produz um erro de sintaxe quando você tenta mover duas pastas de uma vez (nenhuma das sintaxes funciona para mim)

move C:\Source\Dir1,C:\Source\Dir2 C:\Dest\
move C:\Source\Dir1 C:\Source\Dir2 C:\Dest\

A documentação para move sugere que você deve ser capaz de especificar vários arquivos e pastas para mover de uma só vez com uma vírgula ( , ) separando os arquivos a serem movidos, mas isso não parece funcionar para mim.

A documentação diz Moves files and renames files and directories. , sugerindo que realmente não é possível mover diretórios ...

Portanto, não creio que exista uma solução que funcione para você com o comando move disponível em máquinas compatíveis com DOS. No entanto, existem outros comandos mais recentes disponíveis em versões mais recentes do Windows que provavelmente funcionariam. xcopy é popular. Infelizmente, isso não funciona para mim porque xcopy não faz um movimento no nível do sistema de arquivos, apenas copia e exclui o original. Isso é bom para arquivos menores, mas pode ser desastroso com arquivos maiores.

    
por 14.07.2018 / 00:19