Thursday, August 25, 2011

Wildcards in PowerShell


Hi Guys,

Before start learning PowerShell first we need to clear or learn some basic logics and basic  steps of scripting, that’s why I decide to learn about wildcards first. So Lets Start

Question: what are wildcards?

Answer: A wildcard character can be used to substitute for any other character or characters in a string.

Question: Which wildcards are available in PowerShell and what are there meaning?

Answer: The wildcards are available in PowerShell are * ? and []

Wildcard Description
* matches Zero or More characters
? match Exactly one character
[a-z] matches a range of characters
[abc] matches specified character



Wildcard *

Lets Run the following command: Dir * it shows all file and folders in current Directory 


Let run another command: Dir *.* it will show all files in current directory. *.* means all file with any file extension


Lets search for all .mp3 files in our current directory.: Dir *.mp3


Now lets search for all file and folders which starts with B: Dir b* 



Wildcard ?

Now let try our another wildcard character ? , in this example we are searching for a .txt file which names end with at and we forget what  is the name: dir ?at.txt   this command return all file which has at.txt at the end.


Let See the another Example, in this example i am looking for a txt whose name is 3 character long. Dir ???.txt


Now lets join our both wildcards and search for all .mp3 and .mp4 available in our current directory: dir *.mp?



Wildcard [] matches specify range of characters

In [] wildcard we can specify a range of characters to match , for example if we specify [a-d] then it means all alphabets between A-D (A,B,C,D) or if we specified [1-8] then it means match all digits between 1-8 (1,2,3,4,5,6,7,8)

Dir: [a-z]at.txt  this command check for all file start with a-z character and at.txt at the end


In another example lets search for all folder starts whose name start from 1-6

Dir [1-6]



Wildcard [] matches specify characters

In this wildcard rather then provide a range we specify which characters we want to match. for example we want to match character start with b,c,d then we can specify it as [acd] then it matched only files or folders starts with A,C,D and ignore everything else.

For example: dir [bcl]ook.txt , this command look for all files start with B,C,L and have ook.txt after it




I hope this article helps you to understand Wildcards a little bit :)

Thanks for reading it


Aman Dhally


Note: Dir command is an alias of Get-Childtem in PowerShell

1 comment: