burdakovd
@burdakovd

Windows batch find and delete?

find /some/path -type d -name .svn -delete<br/>
find /some/path -type d -name &quot;Prefix_*&quot; -delete<br/>
find /some/path -type f -name &quot;*.bak&quot; -delete<br/>



Нужен аналог, но для Windows.


Для файлов *.bak работает следующее (нашёл на просторах интернета, но не совсем понимаю как оно работает, for /? инфы даёт мало)
for /R &quot;D:\SomePath&quot; %X in (*.bak) do (del &quot;%X&quot;)



Но для директорий не работает.
  • Вопрос задан
  • 3581 просмотр
Решения вопроса 1
umcherrel
@umcherrel
find /some/path -type d -name .svn -delete
for /D /R «D:\SomePath» %X in (svn) do (rmdir /Q /S "%X")

find /some/path -type d -name «Prefix_*» -delete
for /D /R «D:\SomePath» %X in (Prefix_*) do (rmdir /Q /S "%X")

Из документации [1] на for
Directories only

If set contains wildcards (* and ?), the specified command executes for each directory (instead of a set of files in a specified directory) that matches set. The syntax is:

for /D {%% | %}variable in (set) do command [CommandLineOptions]

[1] technet.microsoft.com/en-us/library/bb490909.aspx
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
bliznezz
@bliznezz
find.exe из gnuwin32 подойдет?
Ответ написан
Комментировать
@bondbig
вообще в windows есть встроенная find, но она больше на упрощенный grep похожа. Может ее и хватит для задачки, тут более опытные win-товарищи должны подсказать.
Может вам power shell попробовать? Ну или cygwin поставить и пользоваться привычными линукс-командами и скриптами.
Ответ написан
Комментировать
@max_rip
для файлов del *.bak /q /s
Ответ написан
А еще есть такая штука под названием cygwin — советую присмотреться.
Лично я бы реализовал задачу на WSH (Jscript/VBscript) — там язык намного мощнее, т.ч. вы хотите доступно через коллекцию Enumerator.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
09 дек. 2021, в 13:04
400 руб./в час
09 дек. 2021, в 12:10
1000 руб./за проект
09 дек. 2021, в 11:54
10000 руб./за проект