我的代码段会生成一个csv,其中列出路径(FullName
)到包含260个a的长路径名,即aaaa*.txt
。
如果我有一个文件列表(.csv),这些文件可能都隐藏在长路径名的末尾,例如:longpath1\file1.txt
,longpath1\file2.txt
和longpath1\file3.txt
。
如何修改我的代码以查找csv列表中的每个文件?
Get-LongChildItem -Path $source -Recurse *aaaa*.txt |
Select-Object -Property FullName |
Export-Csv -NoTypeInformation -Delimiter '|' -Path $outputPath
请注意,我在 PSAlphaFS模块中使用Get-LongChildItem
作为已发布的here和here。
更新
我已按以下方式更改了我的代码,其中TestFindFile.csv包含我正在搜索的文件名列表:
$source = 'C:\Data\SCRIPTS'
#$outputPath = 'C:\data\scripts\ps1\TestFileLocation6.csv
$destination = 'C:\Data\SCRIPTS'
$searchFiles = Import-CSV 'C:\Data\SCRIPTS\PS1\TestFindFile.csv' -Header ("Name")
$sourceList = Get-LongChildItem -Path $source -Recurse
ForEach($File in $searchFiles)
{
$sourceList | Where-Object { $_.Name -match $File.filename } | Copy-Item -Destination $destination
# $sourceList | Where-Object { $_.Name -match $File.filename } | Copy-Item -Destination $destination | export-csv -notypeinformation -delimiter '|' -path $outputPath
}
但我收到错误:
Unexpected token 'C:\Data\SCRIPTS'
$searchFiles = Import-CSV 'C:\Data\SCRIPTS\PS1\TestFindFile.csv' -Header ("Name")
$sourceList = Get-LongChildItem -Path $source -Recurse
ForEach($File in $searchFiles)
{
$sourceList | Where-Object { $_.Name -match $File.filename } | Copy-Item -Destination $destination
}
'
in expression or statement.
+ CategoryInfo : ParseError: (:) [], ParseException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString