Сведения о вопросе

Electro Full

00:02, 20th August, 2020

Теги

cmd/bat    

Windows batch find and delete?

Просмотров: 321   Ответов: 6

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;)



Но для директорий не работает.



  Сведения об ответе

Chhiki

19:09, 16th August, 2020

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


  Сведения об ответе

DINO

21:09, 1st August, 2020

find.exe из gnuwin32 подойдет?


  Сведения об ответе

ЯЯ__4

15:57, 1st August, 2020

вообще в windows есть встроенная find, но она больше на упрощенный grep похожа. Может ее и хватит для задачки, тут более опытные win-товарищи должны подсказать.
Может вам power shell попробовать? Ну или cygwin поставить и пользоваться привычными линукс-командами и скриптами.


  Сведения об ответе

PHPH

16:27, 9th August, 2020

для файлов del *.bak /q /s


  Сведения об ответе

darknet

10:35, 2nd August, 2020

  Сведения об ответе

fo_I_K

21:43, 5th August, 2020

А еще есть такая штука под названием cygwin — советую присмотреться.
Лично я бы реализовал задачу на WSH (Jscript/VBscript) — там язык намного мощнее, т.ч. вы хотите доступно через коллекцию Enumerator.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться