通过管道反转元素

dha*_*ech 12 arrays powershell reverse

是否有一个函数可以反转通过管道传递的元素?

例如:

PS C:\> 10, 20, 30 | Reverse
30
20
10
Run Code Online (Sandbox Code Playgroud)

mjo*_*nor 12

您可以将函数内的$ input直接转换为数组,然后反转:

function reverse
{ 
 $arr = @($input)
 [array]::reverse($arr)
 $arr
}
Run Code Online (Sandbox Code Playgroud)


小智 9

10, 20, 30 | Sort-Object -Descending {(++$script:i)}
Run Code Online (Sandbox Code Playgroud)

  • 您好,请添加一些代码解释以帮助用户轻松理解 (2认同)
  • 较短的版本是:10, 20, 30 | 排序对象 {(--$script:i)} (2认同)

jmi*_*mik 6

这是一个非常紧凑的解决方案:

function Reverse
{
    [System.Collections.Stack]::new(@($input))
}
Run Code Online (Sandbox Code Playgroud)


dha*_*ech 2

这是一种方法:

function Reverse ()
{
    $arr = $input | ForEach-Object { $_ }
    [array]::Reverse($arr)
    return $arr
}
Run Code Online (Sandbox Code Playgroud)