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

PowerShell搜索在文本文件中查找文件,powershell,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

需要循环浏览存储在.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:-networkshare上找到,您已经有了所需的内容,因此这相当简单,您只需要在ForEach循环中读取文本文件并将其传递到Get ChildItem(我使用Select-Expand FullName,而不是循环每个文件并选择属性),然后将其传递到文件

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属性,将其保存到所需文件。

我不明白,您是在查找文件
*.mp*
,还是在查找类似于
3030009948\u 3030009912\u df1389947f0fb80d6282122.sasf
的文件列表,其中的列表保存在.txt文件中?因此.sasf是保存在.txt文件中的文件名。需要搜索列出的每个文件并在Z:上显示路径,这些文件是否会在Z:驱动器上找到,或者它们在本地计算机上?在Z:network share上找到似乎不工作显示不相关的文件Z:\02\10 Z:\02\11 Z:\02\12 Z:\02\13 Z:\02\14 Z:\02\19 Z:\02\20 Z:\02\21 Z:\02\25 Z:\02\26 Z:\02\27 Z:\02\28 Z:\02\10\10 Z:\02\10\11 Z:\02\10\13 Z:\02\10\14 Z:\02\10\15 Z:\02\10\17 Z:\02\10\10\10\30Z:\02\10\10\40 Z:\02\10\10\50 Z:\02\10\11\10 Z:\02\10\13\30 Z:\02\10\14\40 Z:\02\10\14\50 Z:\02\10\14\50 Z:\02\10\14\30\1030451778\U 1030451732\U 399ea71c3fd244ac9ef0fea9.sasf Z:\02\10\10\14\40\1030451835\U 1030451826\2779C0563BB33B8222F801.sasf这些都不在我的最新答案文件中。我不知道为什么这会给你带来不好的结果,我测试了我的第一个答案,它给了我很好的结果,但是第二个答案对你来说可能更快。没有给你不好的分数,现在用你的第二个例子检查一下