我需要从每个Windows用户复制一个特定的文件,该文件位于appdata\Roaming中,并保存到c:\temp“user profile”中。这是代码
$users = (gci $env:systemDrive\users).FullName
foreach ($user in $users) {
write-host $user
Copy-Item -Path "$user\Appdata\Roaming\Notepad++\config.xml" -Destination "C:\temp\$user" -Force -Recurse -ERRORACTION SILENTLYCONTINUE
}
我不知道为什么,但它看起来像它不支持的路径.**我如何在Temp中为每个用户创建一个文件夹,其中包含我从appdata\Roaming复制的文件?**FYI:在未来我将需要做相反的事情。
这是错误:复制项目:不支持指定的路径格式。
我试着在互联网上找到一些解决方案,但没有一个成功。
1条答案
按热度按时间wribegjk1#
$users = (gci $env:systemDrive\users).FullName
这将在
$users
中存储 * 完整路径 *,而您只希望使用"C:\temp\$user"
中的目录 name此外,您需要首先确保
C:\temp
* 中的用户特定目标目录存在 *,然后才能将文件复制到那里。因此:
注意事项:
Get-ChildItem
返回的目录项的.FullName
属性不同,这些项按原样存储在$users
中,这允许以后选择性地访问它们的属性,即通过$user.FullName
和$user.Name
。"..."
)中,必须将这些属性引用包含在子表达式运算符$(...)
中。New-Item
-Type Directory
with-Force
返回具有给定路径的预先存在的目录或创建该目录。