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

Bri*_*oss 3 powershell

这可能是我缺少的一些简单解决方案。我想别名命令行:

> ls -lrt
Run Code Online (Sandbox Code Playgroud)

要真正做到这一点:

> Get-ChildItem | Sort-Object -Property LastWriteTime
Run Code Online (Sandbox Code Playgroud)

我看到的问题ls是 已经别名为Get-Children并且在我进行任何尝试之前解决了,例如:

New-Alias -Name 'ls -lrt' -Value 'Get-ChildItem | Sort-Object -Property LastWriteTime'
Run Code Online (Sandbox Code Playgroud)

有没有人知道一种方法可以在不损害以前存在的别名的情况下做到这一点ls

Bil*_*art 6

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

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

ls在这种情况下,您需要删除别名,并改用该函数。

  • 该功能将如何使用?请记住,来到这里的人们是来自 Unix 之类的难民,对 PowerShell 约定知之甚少。 (2认同)