我正在尝试编写一个powershell脚本,以便从csv文件中搜索文件夹及其子文件夹中的特定文件夹,然后将该文件夹复制到其他位置。
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$filePath,
[Parameter(Mandatory=$True,Position=2)]
[string]$InstanceName
)
Import-CSV -Delim ',' -Path $filePath | ForEach-Object {
Get-ChildItem -Path D:\Folder\$InstanceName -Directory -Recurse
Copy-Item $_.FOLDERNAME d:\CopyFolder\$InstanceName -recurse
}
这似乎永远存在,显然错误很多,因为文件在尝试复制时不存在。如果我不知道具体的路径,有没有办法只使用Copy-Item?或其他一些替代方法来解决这个问题?
答案 0 :(得分:0)
有几件事:
在get-childitem上使用-recurse参数时使用FullName属性,以确保始终使用该项的完整路径
Import-CSV -Delim ',' -Path $filePath | ForEach-Object {
Get-ChildItem -Path D:\Folder\$InstanceName -Recurse -Directory -Filter $_.FOLDERNAME | ForEach-Object {
Copy-Item $_.FullName d:\CopyFolder\$InstanceName -Recurse
}
}