1

Цель: я хотел бы искать файлы определенного типа в одной папке. Отфильтрованный по определенному шаблону имени файла (например, "файл"), а также отсортированный по имени файла, результат будет выглядеть следующим образом:

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

1 ответ1

1

Я хотел бы выбрать только последний элемент

(здесь: file432.txt) и выполните дальнейшие операции (например, копирование и переименование) с этим файлом.

Используйте следующий пакетный файл.

test.cmd:

@echo off 
setlocal
for /r . %%g in (file*.txt) do (
  set _lastitem=%%g
  )
echo do something to the last file in the list, which is %_lastitem%
endlocal

пример вывода:

F:\test>dir file*.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

22/08/2016  18:17                 0 file101.txt
22/08/2016  18:17                 0 file212.txt
22/08/2016  18:17                 0 file432.txt
               3 File(s)              0 bytes
               0 Dir(s)  1,765,302,566,912 bytes free

F:\test>test
do something to the last file in the list, which is F:\test\file432.txt

F:\test>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .