fre*_*red 16 filesystems powershell powershell-2.0
我想在一个大目录中搜索一个或几个具有最新修改日期的文件.尝试一些PowerShell代码,但它对我来说效果不佳.
Get-ChildItem 'D:\Temp' | Sort-Object LastWriteTime
Run Code Online (Sandbox Code Playgroud)
我知道我可以-Recurse用来搜索所有目录.但是如何:
限制一些文件
以降序排序
不要列出目录
谢谢你的帮助!
Mar*_*ndl 30
Select-Object -first 10Sort-Object LastWriteTime -DescendingWhere-Object { -not $_.PsIsContainer }所以要将它们组合在一起,这里有一个读取所有文件的示例,D:\Temp通过LastWriteTime降序对它们进行排序,只选择前10个:
Get-ChildItem -Path 'D:\Temp' |
Where-Object { -not $_.PsIsContainer } |
Sort-Object LastWriteTime -Descending |
Select-Object -first 10
Run Code Online (Sandbox Code Playgroud)
Kol*_*yon 19
我能用最短、最甜蜜的方式写这篇文章
ls | sort LastAccessTime -Descending
Run Code Online (Sandbox Code Playgroud)
这些只是这个的别名
Get-ChildItem | Sort-Object LastAccessTime -Descending
Run Code Online (Sandbox Code Playgroud)
Bil*_*ore 13
这对我有用:
PS> dir | Sort-Object LastAccessTime
Run Code Online (Sandbox Code Playgroud)
它与 bash 命令几乎相同:
$ ls -ltr
Run Code Online (Sandbox Code Playgroud)
过滤目录:
PS> dir | Sort-Object LastAccessTime | Out-String -Stream | Select-String -NotMatch "^d"
Run Code Online (Sandbox Code Playgroud)
(就我个人而言,我认为 Microsoft 应该合并“out-string -stream”和“sls”以创建一个名为“out-grep”的新命令,以便 bash 用户可以更正常地使用 powershell,而无需费心定制您的 shell。谁想要键入所有这些垃圾只是为了 grep 命令输出?)
bash 命令将是:
$ ls -ltr | egrep -v "^d"
Run Code Online (Sandbox Code Playgroud)
Martin Brandl 的回答涵盖了原因,所以我不会重复,除了在较新的 Powershell 版本中,您可以用来Get-ChildItem -File仅列出文件而不是目录(文件夹)。我不知道它是什么时候引入的,但它是在 Powershell 5.1 中引入的
以下是一些组合Sort-Object以及Select-Object限制和排序的示例
列出当前目录中最近访问的 5 个文件(非目录),按降序排列
Get-ChildItem -File | Sort-Object -Property LastAccessTime -Descending | Select-Object -First 5
Run Code Online (Sandbox Code Playgroud)
当前目录下最近访问的 5 个文件,按升序排列
Get-ChildItem -File | Sort-Object -Property LastAccessTime | Select-Object -Last 5
Run Code Online (Sandbox Code Playgroud)
列出 5 个最旧访问过的文件、当前目录、降序排列
Get-ChildItem -File | Sort-Object -Property LastAccessTime -Descending | Select-Object -Last 5
Run Code Online (Sandbox Code Playgroud)
列出 5 个最旧访问过的文件、当前目录、升序
Get-ChildItem -File | Sort-Object -Property LastAccessTime | Select-Object -First 5
Run Code Online (Sandbox Code Playgroud)
另请注意,您可以根据一些日期时间文件属性进行排序。获取所有这些文件
Get-ChildItem | Get-Member -MemberType Property | Where-Object -Property Definition -Like "datetime*"
TypeName: System.IO.FileInfo
Name MemberType Definition
---- ---------- ----------
CreationTime Property datetime CreationTime {get;set;}
CreationTimeUtc Property datetime CreationTimeUtc {get;set;}
LastAccessTime Property datetime LastAccessTime {get;set;}
LastAccessTimeUtc Property datetime LastAccessTimeUtc {get;set;}
LastWriteTime Property datetime LastWriteTime {get;set;}
LastWriteTimeUtc Property datetime LastWriteTimeUtc {get;set;}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21375 次 |
| 最近记录: |