![]() |
Параллельный отбор
Доброе время суток!
Помогите, пожалуйста, решить вот такую проблему: мой батник удаляет временные файлы по расширениям *.tmp, *.old и т. д., их там много. Мне нужно как-то сделать поиск "параллельным", чтобы не начинать поиск каждый раз сначала. То есть, я хочу, чтобы при поиске файлов просматривались сразу все перечисленные расширения, а не по очереди. Существует ли такая возможность? А то уже надоело ждать по 40 минут, пока всё очистится - слишком много файлов и папок просматривается. Заранее спасибо! |
Bruce Wayne,
Можно запустить сразу несколько копий батника. Например, батник получает аргумент в виде расширения файла: Код:
del /s /a \*.%1 Код:
C:\> for %i in (old tmp temp) do start 1.cmd %i Код:
for %%i in (tmp temp old) do start cmd /c "del /s /a \*.%%i" |
Код:
del /f /q /s /a *.bak *.old *.tmp |
Foreigner, спасибо большое!) Ваш вариант вполне устраивает,
Код:
for %%i in (tmp temp old) do start cmd /c "del /s /a \*.%%i" kiripanda, спасибо Вам за помощь!) Только Вы, видимо не совсем так меня поняли. Да, получилась одна строчка, но каждый тип файлов батник ищет по новой, т. е. он сначала проверяет все пути на наличие расширения, указанного первым, затем снова проверяет те же самые пути на наличие типа файлов, указанного вторым и т. д. Я хотел бы, чтобы батник проверял все пути только один раз, удаляя все указанные расширения. Метод Foreigner хорош тем, что батник выполняется многократно и одновременно, что создаёт эффект того, что мне и нужно. |
Цитата:
А метод Foreigner наоборот, запускает по отдельному поиску на каждое расширение. |
kiripanda, блин, извиняюсь, теперь я не так выразился: я имел в виду, что батник проверяет каждую папку заново по каждому из указанных расширений, затем переходит к следующей папке, тоже проверяет её от начала и до конца ровно столько раз, сколько указано типов файлов т. д. до тех пор, пока не будут проверены все папки. Мне же нужно, чтобы каждая папка проверялась один раз на наличие всех указанных расширений сразу.
|
Цитата:
Код:
... do start /b cmd /c "... |
Цитата:
Код:
dir /b *.bak *.old *.tmp |
kiripanda, не знаю, всё слишком быстро) Но, походу, по очереди)
Foreigner, огромное спасибо!) Думаю, проблема решена, но хочу выслушать ещё варианты, если они будут - пока не стану закрывать тему. |
Цитата:
Код:
Код:
> cmd /v:on |
Цитата:
Код:
C:\>( |
Foreigner, kiripanda, моё почтение! Спасибо вам за помощь!) Тема закрыта.
|
Цитата:
Код:
> echo !time! && for %i in (tmp temp old) do start /b cmd /c "1>nul dir /b /s \*.%i && echo !time!" |
и всё равно что-то здесь не так
Код:
w:\>echo !time! && for %i in (tmp temp old) do start /b cmd /c "1>nul dir /b /s \*.%i && echo !time!" |
Время: 22:51. |
Время: 22:51.
© OSzone.net 2001-