Войти

Показать полную графическую версию : [решено] Получить список файлов в папке по маске с нужным количеством символов в названии


9119
06-08-2021, 11:50
Добрый.
Нужна ваша помощь.
нагуглить не смог.

Итак:
Нужно получить первый (самый новый) файл в папке по маске *.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}
Команда выполняется в определенный момент в скрипте, поэтому в 90% случаев я получаю имеенно искомый файл.
НО иногда под данному запросу попадают другие временные файлы (вида 618d5fdf-e5ff-45f8-9954-817552dcb926.tmp и др.)
Мне же нужно чтобы всегда попадали файлы вида XXXX.tmp (только 4 символа в названии).
Возможно ли?


p.s. если нужное мне нереально - тогда подход с другой стороны:
1) данный XXXX.tmp всегда будет самым коротким по названию. Можно отсортировать список файлов по новизне и по длинне строки. Тогда искомое всегда будет на 1 месте
2) данный файл вида XXXX.tmp создается в результате запуска .exe. Может можно как-то отслеживать имя создаваемого файла tmp через сам exe.. ну или как-то так.
но только с возможностью обязательного занесения полученного имени XXXX.tmp в переменную ps.


Спасибо.

Foreigner
06-08-2021, 12:26
-filter ????.tmp

9119
06-08-2021, 12:30
-filter ????.tmp »
так просто. Спасибо.

Iska
06-08-2021, 16:27
Только CreationTime, а не LastAccessTime. И -File к Get-ChildItem добавить.

DJ Mogarych
06-08-2021, 17:18
Sort-Object LastAccessTime -Descending | Select-Object -First 1 »
Descending не нужен, достаточно взять не первый, а последний элемент

sort lastwritetime |select -last 1

Iska
06-08-2021, 20:02
DJ Mogarych, а по «скорострельности» разница будет (теоретически)?

DJ Mogarych
06-08-2021, 21:28
Теоретически, если в массиве очень много объектов, наверное, будет. Просто зачем его переворачивать, если можно этого не делать?




© OSzone.net 2001-2012