Tag: Get-ChildItem


Powershell: Search for String or grep for Powershell

This shows you how you can search in files for a specific content with Windows PowerShell. This  also “replaces” the Windows command-line utility “findstr”. In the Unix/Linux world you mostly use the command grep for doing the same. So you can think of Select-String as PowerShell version of Grep. The Select-String cmdlet searches for text and text patterns in input strings and files. You can use Select-String similar to grep in UNIX or findstr in Windows.

grep syntax

grep (options) files.txt

grep example

grep "text I search" *.log

In Windows PowerShell we can use the Select-String to search strings in files

Select-String -Path C:\temp\*.log -Pattern "Contoso"

If you need some more options, for example you need also check subfolders (-Recurse) or you need additional filter for files you wanna check, you can use the Get-Childitem first.

Get-ChildItem C:\temp -Filter *.log -Recurse | Select-String "Contoso"

If you have to copy all the files with a specific content, you can simply add a Copy-Item cmdlet.

Get-ChildItem C:\temp -Filter *.log -Recurse | Select-String "Contoso" | Copy-Item -Destination C:\temp2

More Information about Select-String on Microsoft Docs. Select-String can also be very useful to count your lines of code in different files using PowerShell.


PowerShell: Count your Code lines

After Coding some lines in a lot of different files you wanna know how much lines you have coded. There are two (I am sure there are even more) ways to do that. The first one is to get the content of the files (Get-Content) and count the lines in there. With the Select-String cmdlet, you can count your code lines in a file or script using PowerShell.

The other way and the faster way is with Select-String:

(Get-ChildItem -Include *.ps1 -Recurse | Select-String -pattern .).Count

You can find more about Select-String on Microsoft Docs.

I hope this gives you an idea how you can count your lines of codes in PowerShell. Also have a look at at my blog post about how to install PowerShell 6 and PowerShell 7. If you have question, let me know in the comments.