Использование 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"
, потому что вся команда находится в одной строке.