I've got a project... scattered through a number of folders are a bunch of C# files. How many lines of code do I have? (Bragging rights you know...)
You could open the project in Visual Studio and use the Analyze, Calculate Code Metrics. But that requires Visual Studio, and does not give me all the options I want. (But in many ways is better! Lines by file and by method are available there.)
I wanted to do this on raw files using PowerShell, so assuming your project is in C:\myProject and you only wanted to count ".cs" files...
dir C:\myProject -Recurse *.cs | Get-Content | measure
Get-Content returns the lines from the file as an array, and Measure-Object counts things.
Want to count characters too?
dir C:\myProject -Recurse *.cs |
Get-Content |
measure -Line -Character
Get-Content |
measure -Line -Character
Your boss won't let you take credit for blank lines?
dir C:\myProject -Recurse *.cs |
Get-Content |
where { $_.trim() -ne "" } |
measure -Line -Character
Get-Content |
where { $_.trim() -ne "" } |
measure -Line -Character
Your boss won't let you take credit for blank lines or comments? (I would pay extra for good comments!)
dir C:\myProject -Recurse *.cs |
Get-Content |
where { $_.trim() -ne "" -and $_.trim() -notlike "//*" } |
measure -Line -Character
Get-Content |
where { $_.trim() -ne "" -and $_.trim() -notlike "//*" } |
measure -Line -Character
(Sorry, but in this quick little exercise I did not deal with /* and */ block comments, only // comments.)
Want to include multiple file types?
dir C:\myProject -Recurse -Include *.cs, *.cshtml |
Get-Content |
where { $_.trim() -ne "" -and $_.trim() -notlike "//*" } |
measure -Line -Character
Get-Content |
where { $_.trim() -ne "" -and $_.trim() -notlike "//*" } |
measure -Line -Character
Boy I've been working hard... and using wizards to write code... 😉
Lines Words Characters Property
----- ----- ---------- --------
2563 117084
----- ----- ---------- --------
2563 117084
No comments:
Post a Comment
Note to spammers...
Spammers, don't waste your time... all posts are moderated. If your comment includes unrelated links, is advertising, or just pure spam, it will never be seen.