Esta é uma pergunta estúpida, mas simplesmente não sei por que não está funcionando.
Estou tentando copiar os arquivos da pasta A para a pasta B recursivamente. Eu estou fazendo isso:
Copy-Item -Path "C:\FolderA\" -Destination "C:\FolderB\" -recurse -Force -Verbose
Funciona muito bem, não há problema.
Exceto que o resultado na Pasta B é este:
C:\FolderB\FolderA\file.txt
Considerando que eu quero que seja:
C:\FolderB\file.txt
Que coisa óbvia estúpida estou perdendo?
powershell
CleverPatrick
fonte
fonte
Respostas:
Seu comando está dizendo ao PowerShell para copiar a própria pasta, com todo o seu conteúdo, para a pasta de destino. Para copiar apenas o conteúdo da pasta original, altere o caminho da seguinte maneira:
Observe o asterisco (*) após o nome da pasta. Isso copiará o conteúdo (incluindo subpastas) da pasta, mas não a própria pasta para a pasta de destino.
Usando o cmdlet Copy-Item
fonte
md "C:\FolderB"
antesCopy-Item
parece evitar esse problema.Copy-Item
ela reproduzirá a estrutura da pasta, mas um nível abaixo (por exemplo,C:\FolderA\B\C
é copiado para emC:\FolderB\C
vez deC:\FolderB\B\C
) e também poderá falhar quando existirem várias subpastas. Sempre verifique se a pasta de destino existe antes de chamar o item de cópia. Isso cheira a um bug (não vejo nenhum motivo pelo qual esse comportamento inconsistente seria desejável).Você pode usar -File -Recurse para copiar apenas arquivos recursivamente:
Copy-Item -Path "C: \ Source" -Destination "C: \ Dest" -File -recurse -Force -Verbose
Ou use -Directory -Recurse para copiar apenas a estrutura de pastas empy:
Copy-Item -Path "C: \ Source" -Destination "C: \ Dest" -Directory -recurse -Force -Verbose
Atenciosamente,
Paul Pedroza
fonte
Também funcionaria.
fonte