使用 PowerShell 搜索包含两次或多次出现特定字符串的文件名
Search for filenames containing two or more occurrence of a specific string using PowerShell
我想打印目录中的所有文件,这些文件的名称中多次包含特定字符串(而不是文件本身)。有没有办法用 Powershell 做到这一点?
编辑:
这是我目前拥有的:
Get-ChildItem -Path "path" -Recurse -Filter *string*
有了这个,我得到了所有包含该字符串至少一次的文件,但我只需要它出现两次或更多次的文件。
I only have this: Get-ChildItem -Path "path" -Recurse -Filter *string*
太棒了!
现在你需要做的就是重复这个词:
Get-ChildItem -Path "path" -Recurse -Filter *string*string*
如果有问题的子字符串有空格,您需要引用字符串:
Get-ChildItem -Path "path" -Recurse -Filter '*looking for this*looking for this*'
如果字符串包含通配符文字(如[
或]
),您可以像这样转义它:
$escapedString = [wildcardpattern]::Escape("string [ with special ] characters")
所以整个事情变成了:
$substring = "string we're [looking] for"
$searchTerm = [wildcardpattern]::Escape($substring)
Get-ChildItem -Path "path" -Recurse -Filter "*$searchTerm*$searchTerm*"
我想打印目录中的所有文件,这些文件的名称中多次包含特定字符串(而不是文件本身)。有没有办法用 Powershell 做到这一点?
编辑:
这是我目前拥有的:
Get-ChildItem -Path "path" -Recurse -Filter *string*
有了这个,我得到了所有包含该字符串至少一次的文件,但我只需要它出现两次或更多次的文件。
I only have this:
Get-ChildItem -Path "path" -Recurse -Filter *string*
太棒了!
现在你需要做的就是重复这个词:
Get-ChildItem -Path "path" -Recurse -Filter *string*string*
如果有问题的子字符串有空格,您需要引用字符串:
Get-ChildItem -Path "path" -Recurse -Filter '*looking for this*looking for this*'
如果字符串包含通配符文字(如[
或]
),您可以像这样转义它:
$escapedString = [wildcardpattern]::Escape("string [ with special ] characters")
所以整个事情变成了:
$substring = "string we're [looking] for"
$searchTerm = [wildcardpattern]::Escape($substring)
Get-ChildItem -Path "path" -Recurse -Filter "*$searchTerm*$searchTerm*"