Ignore pastas ocultas em scripts .bat

Ignore pastas ocultas em scripts .bat

Estou tentando encontrar uma maneira de obter uma listagem de todos os arquivos, sem diretórios ocultos. Eu tentei várias variações de algo assim:

dir  /b  /s  /a:-h  z:\  >toc-z.txt

mas isso apenas ignora arquivos ocultos. Preciso de uma listagem que exclua todas as pastas ocultas, incluindo arquivos e subpastas dessas pastas ocultas.

Existe alguma maneira de pular a análise e a listagem de pastas ocultas?

Responder1

É um pouco hackeado, mas você provavelmente poderia usar o xcopycomando com as opções /le /s(ou talvez /e). A chave é a /lopção que diz para exibir uma lista de arquivos que sãosercopiado em vez de fazer cópias. Por padrão, xcopynão copia arquivos ocultos ou de sistema, portanto eles serão ignorados.

Responder2

É um comando longo, mas funciona e é bastante rápido :-)

Aqui está um longo liner para a linha de comando

>toc-z.txt ((for %F in ("z:\*") do @echo %F)&for /f "delims=" %D in ('dir /s /ad-h-l /b z:\*^|sort') do @for %F in ("%D\*") do @echo %F)

Aqui está como um arquivo em lote

@echo off
>toc-z.txt (
  for %%F in ("z:\*") do @echo %%F
  for /f "delims=" %%D in (
    'dir /s /ad-h-l /b z:\*^|sort'
  ) do for %%F in ("%%D\*") do echo %%F
)

informação relacionada