为什么最大代码的控制台输出两倍(最小正常代码相同)?

Why twice the output in the console from code for a maximum (same code for minimum normal)?

以下代码的执行对于其中涉及最大值的部分给出了两倍的结果,但对于旨在产生最小值的部分只给出了一次结果,这是应该的;唯一的区别是将 -le 更改为 -ge 以从最小值代码传递到最大值代码。这是代码;

$SS1=(ls $home\Documents\Doo).creationtime.Ticks
foreach($x in $SS1){$SS1=$SS1|where-object{$_ -ge $x}};$SS1
$SS=(ls $home\Documents\Doo).creationtime.Ticks
foreach($x in $SS){$SS=$SS|where-object{$_ -le $x}};$SS

这是输出;

636940445900142078
636940445900142078
636940445887555535

您可以使用Sort-ObjectSelect-Object来达到想要的效果。

$SS1=(ls $home\Documents\Doo).creationtime.Ticks
$min,$max = $SS1 | Sort-Object | Select-Object -First 1 -Last 1

$min 现在将保持最低的刻度值。 $max 现在将保持最高的刻度值。