como fazer loop na subpasta para verificar se a pasta está vazia dentro do script de lote?

0

O que eu quero fazer:

  1. escreva um script em lote para fazer o seguinte
  2. loop embora todo o diretório comece com "01 -" ...
  3. Verifique se a pasta "Imagens" está vazia ou não. pule as pastas de descanso
  4. 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:

  1. 1st lvl ... Todas as coisas dentro da minha "MainFolder"
  2. 2º lvl ... todas as pastas começam com um número ex: 01, 02, 03, etc ...
  3. 3rd lvl ... Existe uma pasta chamada "Pictures" ... 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.

    
por jon 16.11.2016 / 16:21

1 resposta

0

@echo off
for /f %%A in ('dir /a:d /b /s ^| find /i "01-" ^| find /i "pictur"') do (
echo checking %%A ...
dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo found empty: %%~fA
)
pause
    
por 16.11.2016 / 19:02

Tags