Copy-Item не работает должным образом в powershell - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь скопировать подпапку папки в папку назначения. Я использую следующую команду:

Copy-Item  C:\ABC\XYZ -Destination D:\ABC -Recurse -ToSession $CopySession
Cop-Item C:\ABC\PQR -Destination D:\ABC -Recurse -ToSession $CopySession

Результат выглядит так:

D:\ABC
file1.txt
file2.txt
Folder1
PQR

Где содержимое папки XYZ:

file1.txt
file2.txt
Folder1

Но ожидаемый результат должен быть таким

D:\ABC
XYZ
PQR

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Если вы хотите «скопировать» корневую папку вашего дерева (XYZ), вы можете просто создать ее в процессе.

Copy-Item  C:\ABC\XYZ -Destination D:\ABC\XYZ -Recurse -ToSession $CopySession

Пример 3: Скопировать содержимое каталога вдругой каталог и создайте каталог назначения, если он не существует.Эта команда копирует содержимое каталога C: \ Logfiles в каталог C: \ Drawings \ Logs.Он создает подкаталог «\ Logs», если он еще не существует.- Copy-Item Документы Microsoft

Надеюсь, это поможет вам!

0 голосов
/ 24 мая 2019

Используйте robocopy там, где это возможно, поскольку он покрывает все требования элемента копирования, а также имеет обработку каталогов соединений и символических ссылок.

# /s - Recurse
robocopy /s C:\ABC\XYZ D:\ABC\XYZ

# /s - Recurse
robocopy /s C:\ABC\PQR  D:\ABC\XYZ

Исправляя исходный код, пункт назначения неправильный, и произошла ошибка.опечатка во втором экземпляре предмета

[System.IO.Directory]::CreateDirectory('D:\ABC\XYZ')
Copy-Item  C:\ABC\XYZ -Destination D:\ABC\XYZ -Recurse -ToSession $CopySession
[System.IO.Directory]::CreateDirectory('D:\ABC\PQR')
Copy-Item C:\ABC\PQR -Destination D:\ABC\PQR -Recurse -ToSession $CopySession
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...