for dirname in 'find ./ -type d | grep Pictures'; do if [ $(find $dirname -type f|wc -l) -eq 0 ]; then echo "$dirname is empty"; fi; done
Substitua find ./ pelo find $ RootDir para sua pesquisa.
O que eu quero fazer:
escreva um script em lote para fazer o seguinte loop embora todos dir começando com "01 -" ... Verifique se a pasta "Pictures" está vazia ou não. pule pastas de descanso Se a pasta "Imagens" estiver vazia, do que o caminho de impressão das pastas "Imagens" vazias.
Exemplo de saída:
MainFolder / 01-Folder3 / Pictures está vazio
Estrutura da minha pasta:
1st lvl ... Tudo dentro da minha "MainFolder" 2º lvl ... todas as pastas começam com um número ex: 01, 02, 03, etc ... 3º lvl ... Existe pasta chamada "Fotos" ... em todo 3º lvl aqui está um exemplo:
|>MainFolder
|--->01-Folder1
|------->Pictures
|----------->pic.png
|----------->SubPicFolder
|------->RandomFolder1
|------->RandomFolder2
|--->01-Folder2
|------->Pictures
|----------->SubPicFolder
|------->RandomFolder1
|--->01-Folder3
|------->Pictures
|------->RandomFolder1
|--->02-Folder1
|------->Pictures
|------->RandomFolder1
|------->RandomFolder1
O que eu tentei?
@echo off
for /d /r %%A in ("Pictur*") do (
dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo %%~fA
)
pause
Problema com o que tentei:
Este código imprime toda a pasta "Pictures" vazia, mas o problema é que ela verifica toda a pasta. Eu só quero verificar pasta começando com "01-" e subpasta "Pictures". pule o resto.
for dirname in 'find ./ -type d | grep Pictures'; do if [ $(find $dirname -type f|wc -l) -eq 0 ]; then echo "$dirname is empty"; fi; done
Substitua find ./ pelo find $ RootDir para sua pesquisa.
Tags windows batch batch-file