可能我错过了一些简单的东西,所以提前道歉。我也意识到可能有更好的方法,我也愿意尝试。
我正试图运行一个PowerShell脚本,它将查看一个值数组,比较它们以查看数组中两个元素之间的差异值。
以下是我正在使用的样本数据集,它从CSV导入到powershell中进行测试:
1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.7, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.7, 2.9, 3.0
我要做的是遍历这个列表,并将第二个条目与第一个比较,将第三个与第二个比较,将第四个与第三个比较,以此类推,仅当该元素的值至少比先前元素大0.2时,将该元素添加到$export
中。
以下是我尝试过的内容:
$import = get-content C:/pathtoCSVfile
$count = $import.Length-1;
$current=0;
Do
{
$current=$current+1;
$previous=$current-1
if (($import[$current]-$import[$previous]) -ge 0.2)
{
$export=$export+$import[$current]+"`r`n";
}
}
until ($current -eq $count)
现在我已经使用Trace进行了运行,并为$current和$previous分配了值,并按照每个循环中if条件中描述的方式运行了两者的减法,但仅对于值为2.7($import[14]-$import[13]),它才注册了if条件已经满足,因此只剩下一个值为2.7的$export变量。我原本期望其他值(1.7、1.9和2.9)也将被添加到$export变量中。
再次强调,这可能是我忽视了的一些愚蠢/显而易见的事情,但我似乎无法弄清楚。提前感谢您能提供的任何见解。
$export = @()
。 - litC:/pathtoCSVfile
只包含 1 行,否则get-content C:/pathtoCSVfile
的输出是一个数组(由行组成)。按照现有的写法,$export
构建了一个单一的、多行的[string]
实例。 - mklement0