我尝试使用-like
运算符匹配文件名,然后将与Copy-Item
匹配的文件复制到新目录:
声明文件列表:
$files = "File1", "File2", "File3"
$sourceFolder = Get-ChildItem 'C:\source'
按Name
属性匹配文件:
$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 : Cannot find drive. A drive with the name '@{FullName=C' does not exist.
$filesToCopy
的输出:
FullName
--------
C:\source\file1.txt
C:\source\file2.txt
C:\source\file3.txt
我做错了什么? FullName似乎导致了一个问题。
答案 0 :(得分:2)
$ filesToCopy(因此$ file)是一个具有FullName属性的对象,因此您需要引用该属性才能正确使用它:
foreach ($file in $filesToCopy) {
Copy-Item $file.FullName -Destination 'C:\destination'
}