Powershell 从阵列复制文件列表

Powershell 从阵列复制文件列表,powershell,Powershell,我正在尝试使用-like操作符匹配文件名,然后将与copy Item匹配的文件复制到新目录: 声明文件列表: $files = "File1", "File2", "File3" $sourceFolder = Get-ChildItem 'C:\source' 按名称属性匹配文件: $filesToCopy = @() foreach ($file in $files) { $filesToCopy += $sourceFolder | Where-Object {$_.Name -

我正在尝试使用
-like
操作符匹配文件名,然后将与
copy Item
匹配的文件复制到新目录:

声明文件列表:

$files = "File1", "File2", "File3"
$sourceFolder = Get-ChildItem 'C:\source'
名称
属性匹配文件:

$filesToCopy = @()
foreach ($file in $files) {
    $filesToCopy += $sourceFolder | Where-Object {$_.Name -like "$file*"} | Select FullName
}
最后,将文件复制到目标:

foreach ($file in $filesToCopy) {
    Copy-Item $file -Destination 'C:\destination'
}
最后一节返回错误:
Copy Item:找不到驱动器。名为“@{FullName=C”的驱动器不存在。

$filesToCopy的输出:

FullName
--------
C:\source\file1.txt
C:\source\file2.txt
C:\source\file3.txt
我做错了什么?FullName似乎引起了问题。

$filesToCopy(因此$file)是一个具有FullName属性的对象,因此您需要引用该属性才能正确使用它:

foreach ($file in $filesToCopy) {
    Copy-Item $file.FullName -Destination 'C:\destination'
}

请尝试
Copy Item$file.FullName-Destination'C:\Destination'
@garethlyns谢谢!它成功了。如果您愿意,请发布一个答案-我接受。