Powershell - using wildcards to search for filename

Phil E picture Phil E · Oct 14, 2014 · Viewed 19.9k times · Source

I am trying to make a PowerShell script that will search a folder for a filename that contains a certain file-mask. All files in the folder will have format like *yyyyMd*.txt.

I have made a script:

[String]$date = $(get-date -format yyyyMd)
$date1 = $date.ToString
Get-ChildItem C:\Users\pelam\Desktop\DOM | Where-Object {$_.Name -like '*$date1*'}

But this does not seem to work..

Can anyone help? It seems the problem is that the date variable is not correct because when I hard code something like below, it works:

Get-ChildItem C:\Users\pelam\Desktop\DOM | Where-Object {$_.Name -like '*20141013*'}

Answer

Keith Hill picture Keith Hill · Oct 14, 2014

You can simplify this by just using regex with the -match operator:

Get-ChildItem C:\Users\pelam\Desktop\DOM | Where-Object {$_ -match (Get-Date -format yyyyMMdd)

}

And if you are on V3 or higher, you can further simplify to:

Get-ChildItem C:\Users\pelam\Desktop\DOM | Where Name -match (Get-Date -format yyyyMMdd)