Wie verwendet man Batch File For Loop zur Verarbeitung von Dateien und Ordnern?
Eine der häufigsten Verwendungen von Stapeldateien für Schleifen ist die Verarbeitung von Dateien und Ordnern in großen Mengen. Zum Beispiel können Sie eine Reihe von Dateien oder Ordnern nach einem bestimmten Muster umbenennen, löschen oder verschieben wollen. Dazu können Sie einige der zusätzlichen Optionen verwenden, die für for-Schleifen zur Verfügung stehen, wie z. B.:
- /F um Textdateien oder Ergebnisse anderer Befehle zu verarbeiten.
- /R um Unterordner rekursiv zu verarbeiten.
- /D um nur Verzeichnisse zu verarbeiten.
Hier ist die Syntax der for loop Batch-Datei mit diesen zusätzlichen Optionen:
FOR /F ["options"] %%parameter IN (set) DO command
Wo:
- [„options“] sind zusätzliche Optionen, die verwendet werden können, um zu steuern, wie die for-Schleife Textdateien oder Befehlsergebnisse verarbeitet. Einige häufig verwendete Optionen sind:
FOR /R [[drive:]path] %%parameter IN (set) DO command
Wo:
- [[Laufwerk:]pfad] ist das Startverzeichnis, das von der Schleife verarbeitet werden soll. Wenn nicht angegeben, wird das aktuelle Verzeichnis verwendet.
- (set) ist die Menge der Dateien, die von der Schleife verarbeitet werden sollen. Diese Menge muss ein Muster sein, das auf eine Datei passt (file globbing), z. B. *.txt oder ?.bat. Wenn diese Menge leer ist, werden alle Dateien verarbeitet.
FOR /D %%parameter IN (set) DO command
Wo:
- (set) ist die Menge der Verzeichnisse, die von der Schleife verarbeitet werden sollen. Diese Menge muss ein Muster sein, das auf eine Datei zutrifft (file globbing), wie * oder ? Wenn diese Menge leer ist, werden alle Verzeichnisse verarbeitet.
Beispiel:
FOR /F "skip=1 delims=," %%A IN (data.csv) DO ECHO %%A
Der obige Befehl überspringt die erste Zeile der Datei data.csv, die normalerweise die Spaltenüberschriften enthält, und zeigt den ersten Spaltenwert jeder nachfolgenden Zeile an, getrennt durch Kommata.
FOR /F "tokens=1,2* usebackq" %%A IN ("file name.txt") DO ECHO %%A %%B %%C
Der obige Befehl verarbeitet eine Textdatei, deren Name Leerzeichen enthält, und zeigt die ersten, zweiten und restlichen Spaltenwerte jeder Zeile an, getrennt durch Leerzeichen oder Tabulatoren.
FOR /R C:\Users\ %%D IN (*.jpg) DO COPY %%D D:\Backup\
Der obige Befehl sucht im Verzeichnis C:\Users\ und seinen Unterverzeichnissen nach allen Dateien mit der Erweiterung .jpg und kopiert sie in das Verzeichnis D:\Backup.
FOR /D %%E IN (*) DO RMDIR /S /Q %%E
Der obige Befehl löscht alle Verzeichnisse und deren Inhalte im aktuellen Verzeichnis.
Wie verwendet man Batch File For Loop für den Zugriff auf Datei- und Ordnerinformationen?
Zusätzlich zur Verarbeitung von Dateien und Ordnern mit der Stapeldatei für die Schleife können Sie auch auf Informationen über sie zugreifen, wie Name, Erweiterung, Größe, Änderungsdatum, Attribute und Pfad.
Zu diesem Zweck können Sie Pfadmodifikatoren für Schleifenvariablen verwenden. Ein Pfadmodifikator ist ein spezielles Zeichen, das nach dem Prozentzeichen (%) in einer Schleifenvariablen hinzugefügt werden kann, um den Wert dieser Variablen zu ändern.
Hier sind einige häufig verwendete Pfadänderungen:
- %~fparameter um den vollständigen Pfad einer Datei oder eines Ordners anzuzeigen.
- %~nparameter`, um Datei- oder Ordnernamen ohne Erweiterungen anzuzeigen.
- %~xparameter um Datei- oder Ordnererweiterungen anzuzeigen.
- %~sparameter um den kurzen Pfad einer Datei oder eines Ordners anzuzeigen, was nützlich ist, wenn der Pfad Leerzeichen enthält.
- %~zparameter um die Datei- oder Ordnergröße in Bytes anzuzeigen.
- %~tparameter um das Datum und die Uhrzeit der Datei- oder Ordneränderung anzuzeigen.
- %~aparameter um Datei- oder Ordnerattribute anzuzeigen, wie z. B. R (schreibgeschützt), H (versteckt), S (System), usw.
Beispiel:
FOR %%F IN (*.txt) DO ECHO %%F %%~nF %%~xF %%~sF %%~zF %%~tF %%~aF
Der obige Befehl zeigt Informationen über alle Textdateien im aktuellen Verzeichnis an, wie Name, Erweiterung, Kurzpfad, Größe, Änderungsdatum und Attribute.