Использование forfiles с несколькими типами файлов для маски поиска?

Следующая команда отлично работает с одним типом файлов,

forfiles -p "C:abc\del" -s -m *.exe -d -70 -c "cmd /c echo @path"

Можно ли фильтровать через несколько расширений файлов? *.exe, *.dll, *.xyz?

Ответы

Ответ 1

Не так хорошо, как я надеялся, но этот oneliner может помочь. Обратите внимание, однако, что вы не можете использовать * в качестве фильтра, потому что функция IN начинает выбирать файлы в этом случае.

for %G in (.exe, .dll, .xyz) do forfiles -p "C:abc\del" -s -m *%G -d -70 -c "cmd /c echo @path"

Используется this для справки.

Ответ 2

Также можно пройти через структуру каталога за один проход и протестировать каждое расширение файла с помощью IF.

forfiles -p c:\ -s  -c "cmd /c (if @ext==\"exe\" echo @path) & ( if @ext==\"dll\" echo @path) &  ( if @ext==\"xyz\" echo @path)"

Не забывайте избегать внутренних кавычек \"dll\" instead of "dll", потому что вся команда находится в одной строке.