PowerShell/Docs/search-filename.md
2022-11-17 20:02:26 +01:00

2.5 KiB

The search-filename.ps1 PowerShell Script

This PowerShell script serves as a quick Powershell replacement to the search functionality in Windows After you pass in a root folder and a search term, the script will list all files and folders matching that phrase.

Parameters

search-filename.ps1 [-path] <Object> [-term] <Object> [<CommonParameters>]

-path <Object>
    Specifies the path
    
    Required?                    true
    Position?                    1
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false

-term <Object>
    Specifies the search term
    
    Required?                    true
    Position?                    2
    Default value                
    Accept pipeline input?       false
    Accept wildcard characters?  false

[<CommonParameters>]
    This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, 
    WarningVariable, OutBuffer, PipelineVariable, and OutVariable.

Example

PS> ./search-filename

Notes

Author: Markus Fleschutz | License: CC0

https://github.com/fleschutz/PowerShell

Source Code

<# .SYNOPSIS Lists all files and folder names matching a search pattern .DESCRIPTION This PowerShell script serves as a quick Powershell replacement to the search functionality in Windows After you pass in a root folder and a search term, the script will list all files and folders matching that phrase. .PARAMETER path Specifies the path .PARAMETER term Specifies the search term .EXAMPLE PS> ./search-filename .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #>

param( [Parameter(Mandatory=$true)] $path, [Parameter(Mandatory=$true)] $term )

Recursive search function

Write-Host "Results:" function Search-Folder($FilePath, $SearchTerm) { # Get children $children = Get-ChildItem -Path $FilePath # For each child, see if it matches the search term, and if it is a folder, search it too. foreach ($child in $children) { $name = $child.Name if ($name -match $SearchTerm) { Write-Host "$FilePath$name" } $isdir = Test-Path -Path "$FilePath$name" -PathType Container if ($isdir) { Search-Folder -FilePath "$FilePath$name" -SearchTerm $SearchTerm } } }

Call the search function

Search-Folder -FilePath $path -SearchTerm $term exit 0 # success

Generated by convert-ps2md.ps1 using the comment-based help of search-filename.ps1