Пропускать скрытые папки в .bat-скриптах

Пропускать скрытые папки в .bat-скриптах

Я пытаюсь найти способ получить список всех файлов, без скрытых каталогов. Я пробовал несколько вариантов чего-то вроде этого:

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

но это пропускает только скрытые файлы. Мне нужен список, который исключает все скрытые папки, включая файлы и подпапки этих скрытых папок.

Можно ли как-то пропустить анализ и вывод списка скрытых папок?

решение1

Это немного хакерски, но вы, вероятно, могли бы использовать xcopyкоманду с опциями /lи /s(или, возможно, /e). Ключевой является опция /l, которая сообщает, что нужно отобразить список файлов, которыебытькопировать, а не делать копии. По умолчанию xcopyне копирует скрытые или системные файлы, поэтому они будут проигнорированы.

решение2

Это длинная команда, но она работает и довольно быстро :-)

Вот он в виде длинной однострочной команды для командной строки

>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)

Вот он как пакетный файл

@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
)

Связанный контент