Ich bin auf einen kleinen Haken gestoßen, als ich versucht habe, nur die Dateinamen (keine Erweiterungen oder Dateipfade) rekursiv abzurufen. Das funktionierte für mich im Stammordner:
dir /b
Aber als ich / s zum rekursiven Scannen hinzufügte, bekam ich auch Dateipfade vor Dateinamen, die ich nicht möchte. Gibt es eine Möglichkeit, leere Dateinamen aus allen Unterordnern in einem Verzeichnis abzurufen?
Im auf Windows 7 x64 Ich würde eher normale Eingabeaufforderung nicht PS oder VBS verwenden
Versuche dies:
Weitere Informationen darüber, wie und wo es funktioniert, geben Sie ein
for /?
quelle
>> filename.txt
oder
Nehmen wir eine Datei
noquotes.bat
in Ihrem % PATH% mit diesem Inhalt anfür / r Ansatz erklärt
for /r
Durchläuft das aktuelle Verzeichnis rekursiv (Sie können ein Verzeichnis angebenfor /r drive:\path\
, das aktuelle Verzeichnis wird angenommen) und führt den Befehl aus, der von do für jede in der Gruppe übereinstimmende Datei angegeben wurde(*)
. Der Satz(.)
würde nur mit Verzeichnissen übereinstimmen. @echo% ~ ni Dieser Befehl funktioniert unverändert an der Eingabeaufforderung. Verdoppeln Sie Ihre Anführungszeichen, wenn Sie sie in eine Batch-Datei einfügen. dhfor /r %%i in (*) do @echo %%~ni
forfiles Ansatz erklärt
/s
Listet das aktuelle und alle Unterverzeichnisse auf,/c
führt den Befehl innerhalb der Anführungszeichen aus@isdir
und@fname
ist ein Symbol, das in die Befehlszeichenfolge ausgegeben wird.Die zusätzliche Batch-Datei
noquotes.bat
hilft, indem Sie die doppelten Anführungszeichen mit% ~ 1 (Parameter 1)forfiles
entfernen. Außerdem können Sie einen Pfad angeben, bei dem begonnen werden sollforfiles /P C:\Windows ...
quelle
Listen Sie alle Dateien rekursiv mit Attributen (nicht mit dem Verzeichnis) auf (nur Dateien).
dir / B / S / A: -D
C: \ test \ cache> dir / B / S / A: -D
C: \ test \ cache \ 7 \ 0f \ 7b50ed0522645513da90345120eaf0f7 C: \ test \ cache \ d \ 23 \ 814644aa6a8195c91e54d2f7bb64e23d
quelle
dir /b /s
] habe, rekursiv zu scannen, habe ich auch Dateipfade vor den Dateinamen, die ich nicht möchte. “Sie fordern das OP auf, eine unbedeutende Variante dessen auszuprobieren, was sie bereits ausprobiert haben, und Ihre Antwort zeigt dies dass es das gleiche Ergebnis liefert, als das OP es versucht hat (dh nicht, was sie wollen).