Powershell копирует содержимое папки, но не копирует папку - PullRequest
1 голос
/ 10 июля 2020

У меня есть файловая структура, похожая на:

OldLocation / A, OldLocation / B, OldLocation / C и OldLocation / D

Я хочу переместить папки A, B, и D в NewLocation (вместе с их содержимым). У меня есть следующий код:

    $Copyfiles = Get-ChildItem -Path $folder -Directory -Exclude 'C'



foreach ($item in $Copyfiles)
{

Copy-Item -Path $item -Recurse -Force -Destination $Dest
}

Моя желаемая цель - закончить с материалами NewLocation / A / A, NewLocation / B / B, NewLocation / D / D

It похоже, почти работает, единственное зависание по какой-то причине копирует только содержимое папки A, а не саму папку. Таким образом, я получаю материалы NewLoacation / A, NewLocation / B / B и NewLocation / D / D

Как я могу это исправить?

1 Ответ

2 голосов
/ 10 июля 2020

Убедитесь, что целевой каталог существует заранее , потому что Copy-Item ведет себя по-разному при копировании целых каталогов , в зависимости от того, целевой каталог уже существует или нет:

  • Если он не существует, содержимое исходного каталога копируется в созданный -demand каталог назначения.

  • Если он существует, существует, исходный каталог в целом копируется в каталог назначения как подкаталог .

См. этот ответ для получения справочной информации.

Вы можете использовать следующую команду, чтобы убедиться, что целевой каталог $Dest существует, используя переключатель New-Item -Force для желаемое состояние logi c: он создаст целевой каталог по запросу (и вернет System.IO.DirectoryInfo экземпляр, описывающий либо вновь созданный, либо существующий каталог).

$null = New-Item -Type Directory -Force $Dest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...