Share via


about_Wildcards

Applies To: Windows PowerShell 2.0

TOPIC
    about_Wildcards

SHORT DESCRIPTION
    Describes how to use wildcard characters in Windows PowerShell.
 

LONG DESCRIPTION
    Wildcard characters represent one or many characters. You can use them
    to create word patterns in commands. For example, to get all the files
    in the C:\Techdocs directory that have a .ppt file name extension, type:

        Get-ChildItem c:\techdocs\*.ppt

    In this case, the asterisk (*) wildcard character represents any characters
    that appear before the .ppt file name extension. 

    Windows PowerShell supports the following wildcard characters.


        Wildcard Description        Example  Match             No match
        -------- ------------------ -------- ----------------- --------
        *        Matches zero or    a*       A, ag, Apple      banana
                 more characters

        ?        Matches exactly    ?n       an, in, on        ran
                 one character in 
                 the specified 
                 position

        [ ]      Matches a range    [a-l]ook book, cook, look  took
                 of characters
 
        [ ]      Matches specified  [bc]ook  book, cook        hook
                 characters

    You can include multiple wildcard characters in the same word pattern.
    For example, to find text files whose names begin with the letters "a" 
    through "l", type:

         Get-ChildItem c:\techdocs\[a-l]*.txt

    Many cmdlets accept wildcard characters in parameter values. The 
    Help topic for each cmdlet describes which parameters, if any, permit 
    wildcard characters. For parameters in which wildcard characters are 
    accepted, their use is case-insensitive. 
   
    You can also use wildcard characters in commands and script blocks, such as
    to create a word pattern that represents property values. For example, the
    following command gets services in which the ServiceType property value
    includes "Interactive". 

        Get-Service | Where-Object {$_.ServiceType -like "*Interactive*"}


    In the following example, wildcard characters are used to find property values
    in the conditions of an If statement. In this command, if the Description of a
    restore point includes "PowerShell", the command adds the value of the CreationTime
    property of the restore point to a log file.

        $p = Get-ComputerRestorePoint
        foreach ($point in $p) 
          {if ($point.description -like "*PowerShell*") 
              {add-content -path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"}}
             

SEE ALSO
    about_Language_Keywords
    about_If
    about_Script_Blocks