好的,我有一个文件列表,我想从一个文件夹复制到另一个文件夹。
我有一个CSV与部分文件名列表,例如:ABCD-EFGH
我要复制的文件在名为ABCD-EFGH-1.pdf, ABCD-EFGH-2的目标文件夹中。dxf, ABCD-EFGH-3。dwg等
如果存在匹配,我将尝试复制所有匹配部分名称的文件。
下面的代码不会抛出错误,它只是复制源文件夹中的所有内容。如果我从-Path中删除*,它只是复制文件夹本身,而不是文件夹的内容。我错过了什么?
$drawing_list = Import-Csv $importfile
#$drawing | Get-Member -MemberType NoteProperty
# Loop through all the records in the CSV
foreach($drawing in $drawing_list)
{
# copy all items from source folder to destination that match start of drawing name
Copy-Item -Path "$($sourceFolderName)*" -Filter "$($drawing.Name)*" -Destination $targetFolderName
}
试试$drawing.GetType()
,这不仅仅是你的字符串,而是一个[PSCustomObject]
。
With
$drawing | Get-Member -MemberType NoteProperty
可以得到可以使用的属性。它们与CSV的标题相同。
如果第一行csv不应该是一个头,您可以定义自己与
Import-Csv $importfile -Header 'YourHeader','NextColumn'
您需要在Copy-Item
中使用$drawing
的属性,而不是整个$drawing
对象:
... -Include "$($drawing.FileName)*" ...