gpt4 book ai didi

powershell - 列出与模式匹配的文件夹中的文件名,不包括文件内容

转载 作者:行者123 更新时间:2023-12-02 22:45:08 24 4
gpt4 key购买 nike

我使用下面的内容递归列出包含 $pattern 的文件夹中的所有文件

Get-ChildItem $targetDir -recurse | Select-String -pattern "$pattern" | group path | select name

但它似乎都列出了名称和内容中包含 $pattern 的文件,例如当我运行上面的 $pattern="SAMPLE" 时,我得到:

C:\tmp\config.include
C:\tmp\README.md
C:\tmp\specs\SAMPLE.data.nuspec
C:\tmp\specs\SAMPLE.Connection.nuspec

现在:

C:\tmp\config.include
C:\tmp\README.md

确实包含示例关键字/文本,但我不关心这一点,我只需要命令列出文件名而不是内容与模式匹配的文件。我错过了什么?

基于以下答案,我也尝试过:

$targetDir="C:\tmp\"
Get-ChildItem $targetDir -recurse | where {$_.name -like "SAMPLE"} | group path | select name

和:

$targetDir="C:\tmp\"
Get-ChildItem $targetDir -recurse | where {$_.name -like "SAMPLE"} | select name

但它不返回任何结果。

最佳答案

Select-String正在按照你的指示去做。强调我的。

The Select-String cmdlet searches for text and text patterns in input strings and files.

因此,如果您只是想与文件名匹配,只需使用 Get-ChildItem-Filter 或使用 Where-Object 进行后期处理

Get-ChildItem -Path $path -Recurse -Filter "*sample*"

这应该返回名称中包含样本的所有文件和文件夹。如果您只需要文件或目录,则可以使用开关 -File-Directory 返回这些特定的对象类型。

如果您的模式比简单的单词更复杂,那么您可能需要使用Where-Object,如Itchydon's answer使用诸如 -match 之类的东西可以让您访问正则表达式。

<小时/>

代码中的分组逻辑应该是多余的,因为您返回的单个文件都具有唯一的路径。因此我没有将其包含在这里。如果您只需要路径,则可以通过管道输入 Select-Object -Expand FullName 或只是 (Get-ChildItem -Path $path -Recurse -Filter "*sample*").Fullname

关于powershell - 列出与模式匹配的文件夹中的文件名,不包括文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com