Powershell - 搜索模式和复制

Powershell - Search for Pattern and Copy

我有一堆 *.CSV 文件。巨大的 *.CSV 文件。我尝试在这些名为“安全”的文件中搜索特定模式。如果找到,脚本会将其复制到文件夹中。

它可以工作,但是有一个我无法解决的问题。 在某些文件中,我要查找的单词不止一次出现。现在我的脚本搜索这个词,找到它并复制它。然后它再次在同一个文件中搜索,再次找到模式并再次复制。

但它应该在第一次找到单词后复制,然后在下一个 *.CSV 文件中搜索,而不是再次在同一个文件中搜索。

我尝试了很多东西“-SimpleMatch”或“-First 1

目前的代码是:

Select-String -Path 'C:\Tools\Test\*\*.csv' -Pattern "Secure" | Select -first 1 | Copy-Item -Destination C:\Tools\Found -Verbose

有人可以帮我吗?

谢谢!

使用 Get-ChildItem 发现初始文件集,然后一次对一个文件使用 Select-String。这样 Select -First 1 将在每个文件 中的第一个匹配项 之后 return,而不是在输出第一个文件后破坏整个管道:

Get-ChildItem -Path 'C:\Tools\Test\*\*.csv' |Where-Object { $_ |Select-String -Pattern "Secure" |Select -First 1 } |Copy-Item -Destination C:\Tools\Found -Verbose