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

関連情報