Ich möchte ein Windows-Batch-Skript erstellen, um etwa 2.000 Dateien zu verschieben und sie so aufzuteilen, dass es 10 Dateien pro Ordner gibt. Ich habe versucht, ein Batch-Skript zu erstellen, aber die Syntax verwirrt mich wirklich. Hier ist mein bisheriger Stand
@echo off
:: Config parameters
set /a groupsize = 10
:: initial counter, everytime counter is 1, we create new folder
set /a n = 1
:: folder counter
set /a nf = 1
for %%f in (*.txt) do (
:: if counter is 1, create new folder
if %n% == 1 (
md folder%nf%
set /a n += 1
)
:: move file into folder
mv -Y %%f folder%nf%\%%f
:: reset counter if larger than group size
if %n% == %groupsize% (
set /a n = 1
) else (
set /a n += 1
)
)
pause
Dieses Skript durchläuft im Grunde jede .txt-Datei im Verzeichnis in einer Schleife. Es erstellt am Anfang ein neues Verzeichnis und verschiebt 10 Dateien in dieses Verzeichnis, dann erstellt es wieder einen neuen Ordner und verschiebt weitere 10 Dateien in dieses Verzeichnis, und so weiter. Ich habe jedoch Probleme, wenn die n
Variable in der Schleife nicht inkrementiert wird? Ich bin sicher, dass es auch andere Fehler gibt, da sich das CMD-Fenster bei mir schließt, selbst wenn ich pause
. Jede Hilfe oder Anleitung ist willkommen, danke für Ihre Zeit!