Проблемы с копированием предметов в Powershell - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь скопировать профиль пользователя с другого диска на мой диск C :. У меня есть это, но я столкнулся с двумя проблемами, против которых я продолжаю биться головой, но ничто не работает для меня.

$user="JohnDoe"

Copy-Item -Path "H:\$user\Contacts" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force
Copy-Item -Path "H:\$user\Desktop" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Documents" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Downloads" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Favorites" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Links" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Music" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Pictures" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Saved Games" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Searches" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Start Menu" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 
Copy-Item -Path "H:\$user\Videos" -Destination C:\Users\user\Desktop\UserProfile\$user -recurse -Force 

Когда я запускал код, первая проблема, которая возникает, это любая папка, которая копируется первой, все ее содержимое будет помещено в

 C:\Users\user\Desktop\UserProfile\$user

В моем коде, например, любое содержимое в папке «Контакты» из оригинального диска H: будет скопировано на диск C: не внутри папки «Контакты», а в пути

 C:\Users\user\Desktop\UserProfile\$user

Вторая проблема во всех папках $ RECYCLE.BIN создана.

Inside the C:Drive path folder


Inside the C:Drive path folder\Favorites

Некоторая помощь будет признательна.

1 Ответ

0 голосов
/ 31 августа 2018

Здесь я использовал функцию Splatting , чтобы применить хеш-таблицу параметров к функции:

$user = 'JohnDoe'

$ciArgs = @{
    Path        = "H:\$user"
    Destination = '~\Desktop\UserProfile\'
    Container   = $true
    Recurse     = $true
    Force       = $true
    Exclude     = '*$RECYCLE.BIN*'
}
Copy-Item @ciArgs

При этом папка $user будет полностью скопирована в папку UserProfile, пропуская скрытую папку корзины.

...