PowerShell搜索在文本文件中查找文件

时间:2014-05-30 15:12:42

标签: powershell

需要遍历存储在.txt文件中的文件列表以查找每个文件的路径

 files.txt
 example of the file in files.txt > 3030009948_3030009912_df1389947f0fb80d62832122.sasf

使用此

Get-ChildItem “file_location” -Recurse -Include “*.**” | foreach-object {$_.Fullname} | Out-File c:\files2.txt –width 1024
File Location is a network share Z:

搜索files.txt中存储的每个文件,导出files2.txt中文件的路径 文件将在Z: - 网络共享

上找到

1 个答案:

答案 0 :(得分:1)

你已经拥有了你需要的东西,所以这很简单,你只需要读取文本文件并将其传递给ForEach循环中的Get-ChildItem(我使用Select -Expand FullName而不是循环每个并选择属性),然后将其传递给Out-File。

GC files.txt | %{GCI Z:\$_ -Recurse|Select -Expand FullName} | Out-File Z:\Files2.txt

编辑:好的,所以你说这不起作用,但我不知道为什么不会。我测试它时,它在我的机器上工作正常。它可能一直很慢,因为它为每个文件提取一次网络驱动器的目录列表,所以我们将以不同的方式执行此操作。

$Files = GC files.txt
$DirList = GCI Z:\ -Recurse
$Dirlist | ?{$Files -contains $_.Name} | Select -Expand FullName | Out-File Z:\Files.txt

将文件列表加载到数组中,然后为Z:\驱动器提取完整的目录列表,然后过滤目录列表,检查每个文件以查看其名称是否在所需文件列表中,并展开FullName属性,并将其保存到所需的文件。