Цель: я хотел бы искать файлы определенного типа в одной папке. Отфильтрованный по определенному шаблону имени файла (например, "файл"), а также отсортированный по имени файла, результат будет выглядеть следующим образом:
file101.txt
file212.txt
file432.txt
Теперь я хотел бы выбрать только последний элемент (здесь: file432.txt
) и выполнить дальнейшие операции (например, копирование и переименование) с этим файлом.
Как бы я это сделал?
То, что у меня есть, так это следующее:
@echo off
setlocal
set list=
for /r . %%g in (file*.txt) do echo %%g
... который дает мне список, представленный в верхней части моего вопроса.
Насколько я понимаю, реального списка нет - это просто строка с символами возврата / перевода строки. Следовательно, я не могу действительно выбрать конкретный результат поиска. Я бы использовал другой цикл for
но я не знаю точно, по какому шаблону я буду фильтровать, кроме EOF. Единственная идея, которая у меня есть, - удалить все символы новой строки и сохранить результат в переменной. Теперь каждая новая найденная строка будет перезаписывать предыдущую.
Как бы я это сделал?
set lastitem=for %%g in (%list%) do REMOVE_NEWLINE and echo %%g