|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Параллельный отбор |
|
|
CMD/BAT - [решено] Параллельный отбор
|
Пользователь Сообщения: 94 |
Доброе время суток!
Помогите, пожалуйста, решить вот такую проблему: мой батник удаляет временные файлы по расширениям *.tmp, *.old и т. д., их там много. Мне нужно как-то сделать поиск "параллельным", чтобы не начинать поиск каждый раз сначала. То есть, я хочу, чтобы при поиске файлов просматривались сразу все перечисленные расширения, а не по очереди. Существует ли такая возможность? А то уже надоело ждать по 40 минут, пока всё очистится - слишком много файлов и папок просматривается. Заранее спасибо! |
|
Отправлено: 19:16, 07-04-2012 |
Ветеран Сообщения: 1758
|
Bruce Wayne,
Можно запустить сразу несколько копий батника. Например, батник получает аргумент в виде расширения файла: То тогда можно этот батник вызвать так: Или в самом батнике запускать новый экземпляр cmd.exe: |
Отправлено: 19:35, 07-04-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:42, 07-04-2012 | #3 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать Foreigner, спасибо большое!) Ваш вариант вполне устраивает,
но раздражает огромное количество окон, открывающихся в процессе выполнения. Нельзя ли их как-нибудь скрыть? Я пробовал с помощью утилит, но не получилось. Возможно, я не туда ставил команду утилиты, а именно перед "cmd" в вышеуказанном коде. kiripanda, спасибо Вам за помощь!) Только Вы, видимо не совсем так меня поняли. Да, получилась одна строчка, но каждый тип файлов батник ищет по новой, т. е. он сначала проверяет все пути на наличие расширения, указанного первым, затем снова проверяет те же самые пути на наличие типа файлов, указанного вторым и т. д. Я хотел бы, чтобы батник проверял все пути только один раз, удаляя все указанные расширения. Метод Foreigner хорош тем, что батник выполняется многократно и одновременно, что создаёт эффект того, что мне и нужно. |
Отправлено: 21:11, 07-04-2012 | #4 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Цитата Bruce Wayne:
А метод Foreigner наоборот, запускает по отдельному поиску на каждое расширение. |
||
Отправлено: 21:38, 07-04-2012 | #5 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать kiripanda, блин, извиняюсь, теперь я не так выразился: я имел в виду, что батник проверяет каждую папку заново по каждому из указанных расширений, затем переходит к следующей папке, тоже проверяет её от начала и до конца ровно столько раз, сколько указано типов файлов т. д. до тех пор, пока не будут проверены все папки. Мне же нужно, чтобы каждая папка проверялась один раз на наличие всех указанных расширений сразу.
|
Отправлено: 21:49, 07-04-2012 | #6 |
Ветеран Сообщения: 1758
|
Цитата Bruce Wayne:
|
|
Отправлено: 21:54, 07-04-2012 | #7 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Цитата Bruce Wayne:
каждое расширение по отдельности или все сразу? |
|
Отправлено: 22:04, 07-04-2012 | #8 |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать kiripanda, не знаю, всё слишком быстро) Но, походу, по очереди)
Foreigner, огромное спасибо!) Думаю, проблема решена, но хочу выслушать ещё варианты, если они будут - пока не стану закрывать тему. |
Отправлено: 22:17, 07-04-2012 | #9 |
Ветеран Сообщения: 1758
|
Цитата kiripanda:
> cmd /v:on Microsoft Windows [Version 6.1.7601] (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. > echo !time! && 1>nul dir /b /s \*.tmp \*.old \*.temp && echo !time! 22:13:52,65 22:13:57,56 > cmd /v:on Microsoft Windows [Version 6.1.7601] (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. > ( Продолжить? echo !time! Продолжить? for %i in (old tmp temp) do start /b cmd /c "1>nul dir /b /s \*.%i" Продолжить? echo !time! Продолжить? ) 22:21:01,52 > start /b cmd /c "1>nul dir /b /s \*.old" > start /b cmd /c "1>nul dir /b /s \*.tmp" > start /b cmd /c "1>nul dir /b /s \*.temp" 22:21:01,55 |
|
Отправлено: 22:23, 07-04-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Параллельный запуск программ. | saneck | AutoIt | 0 | 16-01-2012 03:26 | |
Параллельный порт. | optima22 | Материнские платы и память | 14 | 13-02-2011 22:12 | |
Любой язык - Отбор изображений по цвету/каналу, определение цветовой информации | Tosyk | Скриптовые языки администрирования Windows | 2 | 03-01-2011 08:27 | |
VBS/WSH/JS - Отбор файлов по расширению, последующее их удаление. | SaintVictor | Скриптовые языки администрирования Windows | 3 | 22-05-2010 13:21 | |
Прочее - Отбор трафика | sdc-alex | Сетевые технологии | 3 | 10-12-2008 20:16 |
|