Вот решение:
FOR /F "delims= eol=" %i IN ('WHERE .:*.mid 2^> NUL') DO @ECHO %~nxi
Для дополнительных файлов:
FOR /F "delims= eol=" %i IN ('WHERE .:*.mid .:*.midi 2^> NUL') DO @ECHO %~nxi
Или (эквивалентный синтаксис)
FOR /F "delims= eol=" %i IN ('WHERE "%CD%:*.mid" "%CD%:*.midi" 2^> NUL') DO @ECHO %~nxi
Для дополнительных файлов и пути:
FOR /F "delims= eol=" %i IN ('WHERE "%Path1%:*.exe" "%Path2%:*.dll" 2^> NUL') DO @ECHO %~nxi
% CD% или.означает «Текущий каталог», но:
% CD% вызывает ошибку для путей с пробелами, тогда в этом случае он должен быть заключен в двойные кавычки.
.также подходит для пути с пробелами.
В этих примерах поиск файлов в каталогах не является рекурсивным.