3

現在、ディレクトリ内の最後の 5 つのファイルを取得するスクリプトがあります。次のようになります。

$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 からリストの最後まで、すべてのファイルを選択する必要があるかもしれません。

探しているファイルのファイル名を取得し、それをスクリプトで使用できます。それを行うために必要なスクリプト ツールに慣れていないだけです。行を編集して 1 行でそれを行う方法はありますか、それとも結果を得るためにループに入れる必要がありますか?

4

1 に答える 1

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
于 2012-06-11T21:01:28.880 に答える