Powershell 快捷方式列出所有文件和文件夹(包括隐藏文件)并按日期排序

Powershell 快捷方式列出所有文件和文件夹(包括隐藏文件)并按日期排序

我基本上是在寻找类似的东西ls -alt,但在 Powershell (Windows 11) 中。目前我正在使用

gci -fo | sort LastWriteTime -Descending

但它有点复杂,而且肯定不容易记住。有没有更短的、能达到同样效果的方法?

编辑:建议使用的解决方案

Function ls-alt {Invoke-Expression "gci $Args -Force"} # | sort LastWriteTime -Descending}

不起作用。证明:

  1. 使用以下命令创建一个空目录mkdir test

  2. cd test

  3. notepad foo,写一些字符串(我写的string),保存并关闭

  4. 将一些较旧的文件复制到test(我使用了现有的.gitconfig,但我认为任何较旧的文件都可以)

  5. PS C:\Users\xxx\test> gci | 排序 LastWriteTime -Descending

     Directory: C:\Users\xxx\test
    

    模式 LastWriteTime 长度 名称


    -a---- 2024 年 3 月 18 日晚上 10:04 6 foo.txt -a---- 2023 年 8 月 31 日上午 9:13 66 .gitconfig

PS C:\Users\xxx\test> ls-alt


    Directory: C:\Users\xxx\test


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         8/31/2023   9:13 AM             66 .gitconfig
-a----         3/18/2024  10:04 PM              6 foo.txt

建议的解决方案没有正确地按 排序文件LastWriteTime。配置文件的内容符合预期:

notepad $PROFILE
Function ls-alt {Invoke-Expression "gci $Args -Force"} # | sort LastWriteTime -Descending}

答案1

如果你想要一个自定义版本的 Cmdlet 或一系列只需很少输入即可访问的操作,请将其定义为电源外壳配置文件——那么它将在您运行的每个控制台会话中可用。

一个简单的版本会逐字包装你的例子:

Function ls-alt {gci -force | sort LastWriteTime -Descending}

但这将其限制在当前目录中,而没有任何熟悉的过滤、递归等选项。

将自定义设置设为默认设置保留位置参数、命名参数和别名的使用获取子项,你可以使用调用表达式$参数 自动变量

Function ls-alt {Invoke-Expression "gci $Args -Force" | sort LastWriteTime -Descending}

这将允许ls-alt -s(递归)ls-alt $HOME等等。

相关内容