2017-05-13 19 views
0

我有一個「項目」文件夾,並在該文件夾中,我有單獨的解決方案文件夾。例如:powershell衡量信息。計數行代碼

  • 項目
    • 項目1個
    • 計劃2
    • 項目3

等。請注意,項目文件夾可能有多個子文件夾和c#解決方案,但這並不重要。我只想要每個項目文件夾的代碼行。

使用PowerShell,我要計算每個項目的文件夾代碼的線,所以從我的頂級項目文件夾中,我輸入以下內容:

ls | select name, @{n="LinesOfCode";e={(ls -Path $_.fullname -Recurse -Include *.cs | cat | measure).Lines}} -First 1 

的線柱任何回報。然而,如果(剛剛用於調試)我刪除「測量」命令,並與「貓」命令結束,如以下:

ls | select name, @{n="LinesOfCode";e={(ls -Path $_.fullname -Recurse -Include *.cs | cat).Length}} -First 1 

cat命令retuns的值。爲什麼貓不測量?

在此先感謝。

更新 所以上面的問題就解決了由於馬蒂亞斯R.葉森,但現在,我衡量命令將返回所有文件夾值爲1。

ls | select name, @{n="LinesOfCode";e={(ls -Path $_.fullname -Recurse -Force -Filter *.cs | cat | measure -Line).Count}} 

回答

1

當使用measure(別名Measure-Object),你就需要引用Count財產,它不具有Lines屬性:

ls | select name, @{n="LinesOfCode";e={(ls -Path $_.Fullname -Recurse -Include *.cs |cat |measure).Count}} -First 1 
+0

這是這個太早了。感謝@Mathias。接得好! – user3042631