如何在Powershell中为命令“ls -lrt”设置别名

时间:2018-04-17 18:45:58

标签: powershell

这可能是我遗漏的一些简单的解决方案。我想命名行命名:

> ls -lrt

实际执行此操作:

> Get-ChildItem | Sort-Object -Property LastWriteTime

我看到的问题是ls已经为Get-Children设置了别名,并且在我做出的任何尝试之前解决了这个问题:

New-Alias -Name 'ls -lrt' -Value 'Get-ChildItem | Sort-Object -Property LastWriteTime'

有没有人知道如何做到这一点而不会损害以前存在的ls别名?

1 个答案:

答案 0 :(得分:4)

别名不支持参数。你真正想要的是一个功能:

function ls {
  param(
    [Switch] $lrt
  )
  if ( $lrt ) {
    Get-ChildItem | Sort-Object LastWriteTime
  }
  else {
    Get-ChildItem $args
  }
}

在这种情况下,您需要删除ls别名,而是使用该功能。