Powershell 正在尝试获取目录中所有文件行计数的总和

Powershell 正在尝试获取目录中所有文件行计数的总和,powershell,Powershell,我正在尝试获取目录中所有文件的行数。我试着使用一些变量,我设置为0,循环遍历所有文件,得到它们的行号 > $i=0;ls | foreach{$i += [int](get-content $_ | measure-object -line)};$i 但是,每次我尝试将其添加到设置为0的变量时,它都会发出一个奇怪的错误: Cannot convert the "Microsoft.PowerShell.Commands.TextMeasureInfo" value of type "Mi

我正在尝试获取目录中所有文件的行数。我试着使用一些变量,我设置为0,循环遍历所有文件,得到它们的行号

> $i=0;ls | foreach{$i += [int](get-content $_ | measure-object -line)};$i
但是,每次我尝试将其添加到设置为0的变量时,它都会发出一个奇怪的错误:

Cannot convert the "Microsoft.PowerShell.Commands.TextMeasureInfo" value of type
"Microsoft.PowerShell.Commands.TextMeasureInfo" to type "System.Int32".
At line:1 char:19
+ $i=0;ls | foreach{$i += [int](get-content $_ | measure-object -line)};$i
+                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : ConvertToFinalInvalidCastException
为什么这个操作不起作用,如何解决?
有没有更快的方法来获取目录中所有文件的行数?

您需要获取行数:

$i=0;ls -File | foreach{$i += [int](get-content $_ | measure-object -line).Lines};$i
我还将-File开关添加到ls/gci,以仅获取文件的内容

扩展别名的版本:

$i=0;Get-ChildItem -File | ForEach-Object {$i += [int](Get-Content $_ | Measure-Object -line).Lines};$i

谢谢你。“.Count”返回1,但“.Lines”返回文件中的真实行数,因此我将其更改为:$I=0;ls | foreach{$i+=(get content$| measure object-line).lines}$我的工作是:)我失败了,@OrangeReceptacle。更新了我的例子!谢谢你的更新,我已经接受了你的回答。谢谢,@OrangeReceptacle。我的第一个回答有点仓促!;)一行:在您的路径中(dir | gc | measure object)。计数