Я копался и нашел множество решений этой проблемы, причем все они были неким простым изменением, а не просто командой copy-item.Конечно, некоторые из этих вопросов предшествуют PowerShell 3.0, поэтому ответы не являются неправильными, но с помощью PowerShell 3.0 я наконец смог добиться этого, используя переключатель -Container
для Copy-Item:
Copy-Item $from $to -Recurse -Container
я выполнил тест, ошибок нет, и папка назначения представляла ту же структуру папок:
New-Item -ItemType dir -Name test_copy
New-Item -ItemType dir -Name test_copy\folder1
New-Item -ItemType file -Name test_copy\folder1\test.txt
# NOTE: with no \ at the end of the destination, the file
# is created in the root of the destination, and
# it does not create the folder1 container
#Copy-Item D:\tmp\test_copy\* D:\tmp\test_copy2 -Recurse -Container
# If the destination does not exist, this created the
# matching folder structure and file with no errors
Copy-Item D:\tmp\test_copy\* D:\tmp\test_copy2\ -Recurse -Container