Evite que cmd.exe exclua arquivos na subpasta oculta

1

Eu tenho a seguinte estrutura de arquivos

Parent\Deploy                 (folder)
Parent\Deploy\.svn            (hidden folder)
Parent\Deploy\.svn\file1      (regular file)
Parent\Deploy\.svn\file2      (regular file)
Parent\Deploy\.svn\file3      (regular file)
Parent\Deploy\file4           (regular file)
Parent\Deploy\file5           (regular file)
Parent\Deploy\file6           (regular file)
Parent\Deploy\Something       (regular folder)
Parent\Deploy\Something\file7 (regular file)

Digamos que estou em C: \ Parent no momento e gostaria de excluir todos os arquivos 4,5,6,7 usando o comando DEL.

Aqui está minha tentativa:

1) DEL /f /q /s .\Deploy 
2) DEL /f /q /s /A:-H .\Deploy 

Mas isso exclui os arquivos no .svn oculto também. O segundo apenas exclui os arquivos que estão ocultos, mas o arquivo 1-3 é "normal", então os exclui de qualquer maneira ..

    
por user230910 24.03.2016 / 09:39

1 resposta

1

Como faço para excluir recursivamente todos os arquivos, exceto aqueles em diretórios ocultos?

Use o seguinte arquivo em lotes:

@echo off
setlocal enableDelayedExpansion
rem walk file tree, 1/ finding non-hidden directories then 2/ finding files.
rem 1/ find non-hidden directories
for /f "usebackq tokens=*" %%i in ('dir /b /s /a:d-h') do (
  rem 2/ find and delete files
  echo Processing directory: %%i
  for /f "usebackq  tokens=*" %%j in ('dir /b /a:-d %%i 2^> nul') do (
    echo Processing file: %%i\%%j
    del /f /q "%%i\%%j"
    )
  )

Leitura Adicional

por 24.03.2016 / 11:32

Tags