![]() |
Получить список файлов в папке по маске с нужным количеством символов в названии
Добрый.
Нужна ваша помощь. нагуглить не смог. Итак: Нужно получить первый (самый новый) файл в папке по маске *.tmp, с одним важным условием: нужно получить тот файл, имя которого всегда содержит всего 4 символа (пример ABCD.tmp, 1234.tmp, 1A2B.tmp...) Имена все время меняются и разные. Поэтому более точную маску применить нет возможности. Сейчас получаю так: Код:
$file = Get-ChildItem -Path $env:temp -filter *.tmp | Sort-Object LastAccessTime -Descending | Select-Object -First 1 |%{$_.FullName} НО иногда под данному запросу попадают другие временные файлы (вида 618d5fdf-e5ff-45f8-9954-817552dcb926.tmp и др.) Мне же нужно чтобы всегда попадали файлы вида XXXX.tmp (только 4 символа в названии). Возможно ли? p.s. если нужное мне нереально - тогда подход с другой стороны: 1) данный XXXX.tmp всегда будет самым коротким по названию. Можно отсортировать список файлов по новизне и по длинне строки. Тогда искомое всегда будет на 1 месте 2) данный файл вида XXXX.tmp создается в результате запуска .exe. Может можно как-то отслеживать имя создаваемого файла tmp через сам exe.. ну или как-то так. но только с возможностью обязательного занесения полученного имени XXXX.tmp в переменную ps. Спасибо. |
Код:
-filter ????.tmp |
Цитата:
|
Только CreationTime, а не LastAccessTime. И -File к Get-ChildItem добавить.
|
Цитата:
Код:
sort lastwritetime |select -last 1 |
DJ Mogarych, а по «скорострельности» разница будет (теоретически)?
|
Теоретически, если в массиве очень много объектов, наверное, будет. Просто зачем его переворачивать, если можно этого не делать?
|
Время: 19:02. |
Время: 19:02.
© OSzone.net 2001-