Я тоже нашел документацию менее полезной. Я провел несколько тестов, чтобы увидеть, как параметр -Container
работает вместе с -Recurse
при копировании файлов и папок.
Обратите внимание, что -Container
означает -Container: $true
.
Это структура файла, которую я использовал для примеров:
# X:.
# ├───destination
# └───source
# │ source.1.txt
# │ source.2.txt
# │
# └───source.1
# source.1.1.txt
- Для всех примеров текущее местоположение (pwd)
X:\
.
- Я использовал PowerShell 4.0.
1) Чтобы скопировать только исходную папку (пустую папку):
Copy-Item -Path source -Destination .\destination
Copy-Item -Path source -Destination .\destination -Container
# X:.
# ├───destination
# │ └───source
# └───source (...)
Ошибка выдает следующее:
Copy-Item -Path source -Destination .\destination -Container: $false
# Exception: Container cannot be copied to another container.
# The -Recurse or -Container parameter is not specified.
2) Чтобы скопировать всю структуру папок с файлами:
Copy-Item -Path source -Destination .\destination -Recurse
Copy-Item -Path source -Destination .\destination -Recurse -Container
# X:.
# ├───destination
# │ └───source
# │ │ source.1.txt
# │ │ source.2.txt
# │ │
# │ └───source.1
# │ source.1.1.txt
# └───source (...)
3) Чтобы скопировать всех потомков (файлы и папки) в одну папку:
Copy-Item -Path source -Destination .\destination -Recurse -Container: $false
# X:.
# ├───destination
# │ │ source.1.1.txt
# │ │ source.1.txt
# │ │ source.2.txt
# │ │
# │ └───source.1
# └───source (...)