现在我有一个脚本可以获取目录中的最后五个文件。它看起来像这样:
$diffs = Get-ChildItem "C:\usr\local\work\tnl\Database\ReleaseScripts" -Filter "*.sql" | Sort-Object Name -Descending | Select-Object -first 5 | Sort-Object Name
我需要让它选择以某个开头的所有最后一个文件。例如,如果文件名为
201.txt
202.txt
203.txt
204.txt
至
210.txt
我可能需要选择以203.txt开头的所有文件到列表的末尾。
我可以获取我正在寻找的文件名并在脚本中使用它。我只是不熟悉我必须要做的脚本工具。有没有办法编辑我的行,让它只在一行中完成,或者我必须把它放在循环中以获得我的结果?
答案 0 :(得分:4)
这是有效的,但如果文件名结构更复杂或者原始过滤器有可能获取不符合要求的文件名,则需要扩展。
$diffs = Get-ChildItem "C:\usr\local\work\tnl\Database\ReleaseScripts" -Filter "*.sql" |?
{[Int][System.Text.RegularExpressions.Regex]::match($_.name,"\d+").Value -gt 201 }|
Sort-Object Name -Descending | Select-Object -first 5 | Sort-Object Name