Überspringen Sie versteckte Ordner in .bat-Skripten

Überspringen Sie versteckte Ordner in .bat-Skripten

Ich versuche, eine Möglichkeit zu finden, eine Liste aller Dateien ohne versteckte Verzeichnisse zu erhalten. Ich habe mehrere Varianten davon ausprobiert:

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

aber dabei werden nur versteckte Dateien übersprungen. Ich brauche eine Liste, die alle versteckten Ordner ausschließt, einschließlich der Dateien und Unterordner dieser versteckten Ordner.

Gibt es eine Möglichkeit, das Parsen und Auflisten versteckter Ordner zu überspringen?

Antwort1

Es ist ein bisschen hackig, aber Sie könnten den xcopyBefehl wahrscheinlich mit den Optionen /lund /s(oder vielleicht den /e) verwenden. Der Schlüssel ist die /lOption, die anweist, eine Liste der Dateien anzuzeigen, diezu seinkopiert, anstatt Kopien zu erstellen. Standardmäßig xcopywerden keine versteckten oder Systemdateien kopiert, daher werden sie ignoriert.

Antwort2

Es ist ein langer Befehl, aber er funktioniert und ist ziemlich schnell :-)

Hier ist es als langer Einzeiler für die Kommandozeile

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

Hier als Batchdatei

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

verwandte Informationen