Por que o meu loop não encontra algum arquivo?

0

Eu tenho um loop realmente simples que estou tentando fazer em um prompt do Windows CMD / arquivo em lote (eu tentei ambos com% i na linha de comando e %% i no arquivo em lotes):

for %%i in (workspace\*) do echo %%i

Eu não quero exibir todas as subpastas em uma pasta (apenas como um exemplo muito simples para fazer o loop funcionar), mas nada é exibido.

O que estou fazendo de errado aqui?

    
por Tim B 08.06.2016 / 12:55

2 respostas

1

Por padrão, for exibe apenas arquivos, não diretórios, portanto, um diretório contendo apenas subdiretórios não mostrará nada. Para mostrar diretórios, você precisa adicionar a opção /d :

for /d %%i in (workspace\*) do echo %%i

Isso pressupõe que o comando está em um arquivo em lote (apenas um único % assina se digitado) e mostra diretórios somente . Não há opção para mostrar os dois: você precisaria usar um comando como o DavidPostill sugere:

for /f "usebackq" %%i in ('dir /b') do echo %%i
    
por 08.06.2016 / 13:49
1

Se você estiver executando isso a partir do prompt de comando, e não de um arquivo de lote, será necessário usar% i, não %% i.

Alternativamente, você pode usar forfiles , que tem opções diferentes e pode muito bem trabalhar muito mais facilmente para o que você precisa fazer.

Forfiles também encontra pastas.

    
por 08.06.2016 / 13:07

Tags