Переписал свой батник аккуратнее, чтобы не быть привязанным к языку выдачи команды Dir (слово байт больше не ловлю, анализирую кол-во строк в выдаче Dir)
Вообще-то команда Dir возвращает Errorlevel=1 если файлы не найдены. Мне не удалось его поймать, когда Dir помещена в For. Может, кто-то подскажет? Было бы существенно лучше.
Код:
@Echo Off
cls
Set Where=D:\Директория поиска
Set What=.exe .doc .xls .js .tif .ююю
Set W=%What:.=*.%
SetLocal EnableExtensions
SetLocal EnableDelayedExpansion
cd /D "%Where%"
Set First=Папка указана неверно
Set Second=%First%
IF %ERRORLEVEL%==0 (
Echo %Where%
FOR %%e IN (%What%) DO (
Set N=0
FOR /F "usebackq tokens=*" %%m IN (`dir *%%e /s 2^>nul`) DO Set First=!Second! & Set Second=%%m & Set /A N=!N!+1
If !N! GTR 4 (Echo *%%e !First!) Else (Echo *%%e Файлы не найдены)
)
Set N=0
FOR /F "usebackq tokens=*" %%s IN (`dir %W% /s 2^>nul`) DO Set First=!Second! & Set Second=%%s & Set /A N=!N!+1
If !N! GTR 4 (Echo %W% !First!) Else (Echo %W% Файлы не найдены)
) Else (
Echo %Second% %Where%
)
Pause