453 Stimmen

Alle Dateien in einem Verzeichnis mit einer 'for'-Schleife durchlaufen

Wie kann ich über jede Datei in einem Verzeichnis iterieren, indem ich eine for Schleife?

Und wie kann ich feststellen, ob es sich bei einem bestimmten Eintrag um ein Verzeichnis oder nur um eine Datei handelt?

2voto

Biri Punkte 6703

Ich würde vbscript (Windows Scripting Host) verwenden, denn in Batch kann man sicher nicht erkennen, ob ein Name eine Datei oder ein Verzeichnis ist.

In vbs kann das etwa so aussehen:

Dim fileSystemObject
Set fileSystemObject = CreateObject("Scripting.FileSystemObject")

Dim mainFolder
Set mainFolder = fileSystemObject.GetFolder(myFolder)

Dim files
Set files = mainFolder.Files

For Each file in files
...
Next

Dim subFolders
Set subFolders = mainFolder.SubFolders

For Each folder in subFolders
...
Next

Siehe FileSystemObject auf MSDN .

1voto

Sam B Punkte 26515

In meinem Fall musste ich alle Dateien und Ordner unterhalb eines temporären Ordners löschen. Und so habe ich es schließlich gemacht. Ich musste zwei Schleifen laufen lassen, eine für Dateien und eine für Ordner. Wenn Dateien oder Ordner Leerzeichen in ihren Namen haben, müssen Sie " " verwenden.

cd %USERPROFILE%\AppData\Local\Temp\
rem files only
for /r %%a in (*) do (
echo deleting file "%%a" ...
if exist "%%a" del /s /q "%%a"
)
rem folders only
for /D %%a in (*) do (
echo deleting folder "%%a" ...
if exist "%%a" rmdir /s /q "%%a"
)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X