Como posso iterar em diretórios no prompt de comando do Windows?

4

O prompt de comando do Windows (cmd.exe) fornece o comando FOR. Pode ser usado para fazer uma operação para qualquer arquivo em um diretório. Exemplo:

\> dir
28.05.2012  18:25                69 buildall.bat
28.05.2012  07:48    <DIR>          include
28.05.2012  18:23    <DIR>          sub-607

\> for %d in (*.bat) echo %d

Como posso fazer a mesma coisa (não recursivamente) com todos os subdiretórios em um determinado diretório? A ideia é:

for %d in (sub-*) do (
  cd %d
  dosomething
  cd ..
)

A instrução for acima não encontra sub-607, porque não é um arquivo .

    
por harper 28.05.2012 / 18:42

1 resposta

7

O comando for pode usar a opção /D para iterar em subdiretórios, em vez de arquivos.

for /D %d in (sub-*) do ...

Veja aqui para mais informações: link

    
por 28.05.2012 / 19:04