Se o arquivo não existir, a subpasta poderá ser excluída.
Você precisa de algo como o seguinte:
echo off
setlocal enableDelayedExpansion
for /f %%i in ('dir /a:d /b /s c:\test') do (
set _dir=%%i
if exist !_dir!\test.txt (
rem do nothing
) else (
echo rd !_dir!
)
)
endlocal
Notas:
- Remova o
echo
antes derd
quando tiver certeza de que os diretórios corretos serão excluídos. - Adicione
/s
ard
se o diretório contiver subdiretórios. - Adicione
/q
ard
para remover a confirmação S / N.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- dir - Exibe uma lista de arquivos e subpastas.
- if - Realize condicionalmente um comando.
- enabledelayedexpansion - Expansão com atraso fará com que as variáveis sejam expandidas em tempo de execução e não no tempo de análise.
- rd - Excluir pasta (s).
- para / f - Comando Loop contra os resultados de outro comando.