我基本上是在寻找类似的东西ls -alt
,但在 Powershell (Windows 11) 中。目前我正在使用
gci -fo | sort LastWriteTime -Descending
但它有点复杂,而且肯定不容易记住。有没有更短的、能达到同样效果的方法?
编辑:建议使用的解决方案
Function ls-alt {Invoke-Expression "gci $Args -Force"} # | sort LastWriteTime -Descending}
不起作用。证明:
使用以下命令创建一个空目录
mkdir test
cd test
notepad foo
,写一些字符串(我写的string
),保存并关闭将一些较旧的文件复制到
test
(我使用了现有的.gitconfig
,但我认为任何较旧的文件都可以)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
等等。