Search code examples
powershellfilterpowershell-4.0

What is the FileSystem provider filter syntax?


Get-Help Get-ChildItem displays -Filter parameter, with displayed wording "Specifies a filter in the provider's format or language". That language differs between what Powershell calls "providers", and file system is declared as one of them. But I have not found any syntax descriptions on file system provider's filter syntax. Any help?


Solution

  • The filter syntax supported by the FileSystem provider is sparsely (if it all) documented, probably because there's nothing much to say.

    In short, it only supports simple wildcard matching as you know it from Windows XP-era Search:

    Any file with an extension:

    *.*
    

    Any file with the .txt extension:

    *.txt
    

    Partial wildcard matching:

    *something*.txt
    

    Single-character matching (matches myfile1.jpg but not myfile01.jpg):

    myfile?.*
    

    Simple character sets (this matches bear and beer):

    be[ae]r
    

    Simple character ranges (this matches filea.txt, fileb.txt and filec.txt):

    file[a-c].txt
    

    Note: It only supports a single expression per filter, so this is illegal:

    *.jpg|*.txt