Powershell,这段代码的每个部分究竟做了什么?
$a = gc "$home\documents\textfile.txt"
for ($i = 0; $i -lt $a.Count + 1; $i++)
{
$a[($a.count-1) - $i]
}
我知道第一行获取文本文件的内容,并且文件从下到上显示,但for循环究竟是按部就班地进行的?Powershell,这段代码的每个部分究竟做了什么?
for循环将$ i设置为0,只要小于或等于$ a.Count-1就循环并在每次迭代后递增。
$ a.Count是文件中行的总数,所以$ a.Count-1是$ a的最后一个元素(行),它是一个从零开始索引的数组。
在每次迭代中,$ i变大,因此循环内部的行将返回最后一个元素减去$ i时保存的值。
如果$ a有5行,例如$ a中有5个元素。这些是$ a [0]到$ a [4]
在第一次迭代中,$ i为零,所以方括号内的值计算为5-1-0 = 4.这给出了最后一行。
在第二次迭代中,所有变化是$ i递增。这将评估为5-1-1 = 3.这是倒数第二行。
这会持续到$ i = 4(即$ a.Count-1)并且代码评估5-1-4 = 0,这会导致输出$ a的第一个元素。
希望是有道理够你...
什么for循环做的是让由$提供的字符串的索引。
你可以通过设置一个变量等于一个字符串或数组,并查看其中的每个索引来玩索引。以,例如,$x = "this is a string"
。然后你可以看看$ x [n],其中n是一个整数,它会告诉你该字符串或数组中包含的索引。对于$x[0]
Powershell会返回“t”,或者如果$ x是一个字符串数组,它将返回“this”。
现在我们知道索引是什么了,我们可以看看for循环中的数学运算符。以Powershell正在处理它的方式来思考这个问题,我们将从括号开始。 $a.count
返回一个等于$ a中包含的对象数量的值。如果我们看看Get-Content
返回什么(在我们方便的Get-Help gc
的帮助下),我们可以看到它正在返回该文件中包含的每行对象。
当我们将这些原则应用于您提供的脚本时,我们可以确定脚本将以相反的顺序返回文件的行。
关闭投票为'寻找教程',这是明确的主题;他们中有很多已经上网,并且没有阅读任何内容,显然没有尝试任何解决它的功能,但是期待别人给你写信,而另一个自定义教程有点厚颜无耻。你的大学情况是不幸的,但真的是你要求你付出的服务或退款,而不是在这里发泄。 – TessellatingHeckler
简单地把它放在反向行顺序文件。 – jkdba