Aqui está uma alternativa (desagradável, desagradável e não ideal) para arquivos:
for /f "tokens=* delims=" %i in ('dir /b/a-d *') do echo "%i"
E uma versão para pastas (análogo a for /d…
):
for /f "tokens=* delims=" %i in ('dir /b/ad *') do echo "%i"
E uma versão para ambos (sem for
analógico, então isso é um benefício):
for /f "tokens=* delims=" %i in ('dir /b/a *') do echo "%i"
Versão recursiva para arquivos ( for… /r
):
for /f "tokens=* delims=" %i in ('dir /b/s/a-d *') do echo "%i"
E pastas ( for /r /d…
):
for /f "tokens=* delims=" %i in ('dir /b/s/ad *') do echo "%i"
E ambos
for /f "tokens=* delims=" %i in ('dir /b/s/a *') do echo "%i"
Isso funciona mais ou menos, mas definitivamente tem seus problemas (especialmente para grandes conjuntos de arquivos ou pastas). Espero que haja uma solução melhor ou a Microsoft consiga corrigir / melhorar isso em um patch.