所以,首先我的场景:有一个文件,我的脚本读取该文件,计算行数并逐行读取内容。
我的剧本:
$lines = Get-Content C:\RDS\snaps.txt | Measure-Object -Line
$line = $lines.Lines
for($i=1; $i -le ($line-1); $i++)
{
#Need to store a line in a variable
}
我需要这样: 对于小于或等于($ line-1)的每个“i”值,我需要读取特定的行。
示例:如果i = 1,表示第一行,我需要读取第一行并将其存储在变量中。如果i =($ line-1),表示最后一行上方的行,需要存储该特定行并将其存储在同一个变量中。
如何做到这一点?我无法预测文件中有多少行。我的脚本需要做哪些更改?任何帮助都会非常感激。
答案 0 :(得分:2)
您可以使用简单的foreach循环迭代每一行:
$Content = Get-Content 'C:\RDS\snaps.txt'
$lineCount = 0;
$lastLine = ''
foreach ($line in $content)
{
$lineCount++
# Insert your condition to store the lastline: if ($lineCount -eq ...)
$lastLine = $line
}
答案 1 :(得分:1)
这个问题真的不太清楚,但如果你只是想读一个特定的行,你就不需要for循环了。实际上get-content将为每一行返回一个对象的集合(数组)。因此,可以使用$content[n-1]
访问n th 行。
所以
$content=Get-Content C:\RDS\snaps.txt
$content[0] #firstline
$content[-2]# the line before the last line