Summary: Use Windows PowerShell to find files using the wrong year in the file name.
I have files that use the month, day, and year in their file names. I recently discovered that some years are not using the new year in their file names. How can I easily find these files?
Use the Get-ChildItem cmdlet to find the files in the folder. Use a wild card pattern in the Where-Object command to filter out these files. The following illustrates this technique by using Windows PowerShell 3.0 syntax, where gci is the alias for Get-ChildItem and ? is the alias for Where-Object:
15:42 C:\> gci -Recurse C:\data\ScriptingGuys\2013 | ? name -like '???-?-*-12-*
Directory: C:\data\ScriptingGuys\2013\HSG_1_7_13
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 1/10/2013 1:21 PM 20383 HSG-1-11-12-01.png
-a--- 1/10/2013 1:24 PM 19952 HSG-1-11-12-02.png
-a--- 1/10/2013 1:26 PM 24238 HSG-1-11-12-03.png
-a--- 1/10/2013 1:37 PM 42781 HSG-1-11-12-04.png
-a--- 1/10/2013 1:37 PM 12472 HSG-1-11-12-05.png
-a--- 1/11/2013 12:35 PM 28651 HSG-1-12-12-01.png
-a--- 1/11/2013 12:43 PM 38762 HSG-1-12-12-02.png
----- 1/11/2013 1:13 PM 25456 HSG-1-12-12-03.png
-a--- 1/11/2013 1:13 PM 16030 HSG-1-12-12-04.png
For Windows PowerShell 1.0 or Windows PowerShell 2.0 syntax, the command is:
gci -Recurse C:\data\ScriptingGuys\2013 | ? {$_.name -like '???-?-*-12-*'}