Powershell: Search for String or grep for Powershell

Powershell Header

This shows you how you can search in files for a specific content with Windows Powershell. This “replaces” the Windows command-line utility “findstr”. In the Unix/Linux world you mostly use the command grep for doing the same.

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:

Continue reading

Powershell: Count your Code lines

Powershell Header

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.

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

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