gpt4 book ai didi

loops - 计算文件中的行数并存储在Variable中

转载 作者:行者123 更新时间:2023-12-04 09:32:04 25 4
gpt4 key购买 nike

我需要计算文本文件中的行数,并将其用作for循环的循环变量。问题是这样的:

$lines = Get-Content -Path PostBackupCheck-Textfile.txt  | Measure-Object -Line

尽管这确实返回了行数,但它以无法与我的循环中的整数进行比较的状态返回它:
for ($i=0; $i -le $lines; $i++)
{Write-Host "Line"}

最佳答案

Measure-Object返回TextMeasureInfo对象,而不是整数:

PS C:\> $lines = Get-Content .\foo.txt | Measure-Object -Line
PS C:\> $lines.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False TextMeasureInfo Microsoft.PowerShell.Commands.MeasureInfo

您要使用的信息由该对象的 Lines属性提供:

PS C:\> $lines | Get-Member


TypeName: Microsoft.PowerShell.Commands.TextMeasureInfo

Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Characters Property System.Nullable`1[[System.Int32, mscorlib, Vers...
Lines Property System.Nullable`1[[System.Int32, mscorlib, Vers...
Property Property System.String Property {get;set;}
Words Property System.Nullable`1[[System.Int32, mscorlib, Vers...

该属性返回一个实际的整数:

PS C:\> $lines.Lines.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType


PS C:\> $lines.Lines
5

因此您可以在循环中使用它:

PS C:\> for ($i = 0; $i -le $lines.Lines; $i++) { echo $i }
0
1
2
3
4
5
PS C:\> _

关于loops - 计算文件中的行数并存储在Variable中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13440389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com