Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2726
Благодарности: 1696

Профиль | Отправить PM | Цитировать


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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 07-07-2012 в 15:07.


Отправлено: 15:01, 07-07-2012 | #14