Tente este:
gci C:\results19_TC1.* | foreach-object { robocopy $_.fullname (".\datastore\somefolder\" + $_.name) }
gci C:\results19_TC1.*
get todos os arquivos / diretórios correspondentes primeiro e os coloca no canal onde foreach-object
cuida de todos os resultados do primeiro comando. Ele fará o robocopy do caminho completo de cada resultado (caminho completo para os diretórios de resultados) e os colocará em. \ Datastore \ somefolder \ com seu nome de pasta original, por exemplo:
C:\results19_TC1.123456
- > C:\results\datastore\somefolder19_TC1.123456
Essa coisa entre chaves colocará esse nome de diretório de destino e o nome da pasta original juntos.
Editar:
Acabei de ver que seu diretório de destino deve ser um caminho UNC. O Robocopy aceita caminhos UNC (mesmo com nomes de caminho com mais de 256 caracteres). Você só precisa substituir (".\datastore\somefolder\"
por ("\datastore\somefolder\"
no meu comando. Então o comando certo seria:
gci C:\results19_TC1.* | foreach-object { robocopy $_.fullname ("\datastore\somefolder\" + $_.name) }