Копирование папки с использованием Copy-Item - другое поведение - PullRequest
12 голосов
/ 08 мая 2011

Я хочу скопировать всю папку в другую папку, используя Copy-Item.

Моя исходная папка c:\base содержит несколько файлов:

├───base    
│       file1.txt
│       file2.txt

Я использую следующую команду:

Copy-Item c:\base c:\target -recurse

, если целевая папка (c:\target) существует, команда копирует исходную папку именно так, как я хочу:

├───target
│   └───base    
│           file1.txt
│           file2.txt

Если целевая папка не существует, команда создает целевую папку (именно так, как я хочу), , но теперь она копирует только содержимое исходной папки (без папки base):

├───target    
│       file1.txt
│       file2.txt
  • Почему это происходит?
  • Как использовать эту команду копирования (дополнительные ключи?) Без создания целевой папки раньше?

1 Ответ

9 голосов
/ 08 мая 2011

Это известная ошибка (функция, о которой некоторые говорят):

http://groups.google.com/group/microsoft.public.windows.powershell/msg/3327f2d1544e7fb6?as_umsgid=6CAEDDC7-0F1A-4B21-8FB0-E6102A16EB51@microsoft.com

Такое поведение ИМО, является артефактом провайдер и объектный конвейер модель, которую использует PowerShell. У тебя есть привыкнуть к мысли, что навигационный контекст немного странный по сравнению с другими снарядами; его явный в отличие от неявного, так как файловая система является одной из многих контексты, которые могут быть использованы. Это приносит с этим некоторые странные поведения, так как цели любого данного пути обрабатывается с комбинацией общая грамматика PowerShell и тому сама команда, в отличие от того, чтобы быть полностью обрабатывается командой в оболочки вроде command.com/cmd.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...