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