Eu tenho um script que estou usando para fazer backup de arquivos. Por alguma razão, ele está apenas copiando os arquivos e o diretório da subpasta na segunda vez que o script é executado. A mensagem de erro é

"O contêiner não pode ser copiado para o item de folha existente".

Estou procurando esse erro e eles dizem que estou copiando um arquivo para o mesmo nome, mas esse subdiretório nem é criado na primeira vez em que o script é executado. A pasta de destino está vazia na primeira vez que eu executo isso. Alguma ideia?

O diretório de origem fica assim:

 \\DRIVE01\Svcs
              \Credential
                     \Forms
                         file and dir list   #this dir level doesn't get copied the first time, but the files do

É assim que o toLoc se parece após a primeira execução:

      me\Documents\2018\powershellFiles\toLoc
              \Credential
                     \Forms
                         file list   #the first time the files get copied without the dirs at this level

Este é o meu script:

function CopyFileToFolderUNC($SourcePath, $DestinationPath){
         Copy-Item -Path $SourcePath/* -Destination $DestinationPath #Copy-Item -Path source -Destination target  -Recurse -Force 
}


#################start here##################################

$tempSource = @("\\DRIVE01\Svcs\Credentialing\FORMS") #eventually will have list of more than one here
$ToLocation = "C:\Users\me\Documents\2018 \powershellFiles\toLoc\Credentialing\FORMS\"  #this will eventually be array with multiple in it

for($i=0; $i -lt ($tempSource.Length); $i++) {
   CopyFileToFolderUNC $tempSource[$i] $ToLocation
}

Antes de mudar para um loop for de um foreach, pensei que estivesse funcionando para os subdiretórios no toLoc. Eu preciso de um loop for porque será mais fácil lidar com matrizes para as strings dir de origem e destino que serão as próximas.

Michele
fonte