balzmatthias

Batch für Datei Sortierung

Hallo alle zusammen.

Ich bin leider nur Enduser und suche eine einfache Art Dateien zu sortieren.

Ich habe eine Ordner mit ca. 2000 Dateien die immer wieder einen neue Version bekommen.
Der Dateiname sieht wie folgt aus.

RL5_5M_AK7F2Z7_V1.xls

Es soll so sortiert werden.

Anhand der 8 - 10 stelle (AK7) soll dann ein Unterordner erstellt werden mit AK7 und alle Datein die dann AK7 enthalten dort hin verschoben werden.


RL5_5M_AK7F2Z7_V1.xls
RL5_5M_AK7F2Z8_V1.xls
RL5_5M_ZZ5F2Z7_V1.xls

Also immer anhand der 8 - 10 stelle ein Unterordner und dann alle dateien da rein.

Würde das mit einer Batch Datei gehen
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 559376

Url: https://administrator.de/forum/batch-fuer-datei-sortierung-559376.html

Ausgedruckt am: 26.04.2025 um 07:04 Uhr

143127
143127 20.03.2020, aktualisiert am 21.03.2020 um 08:08:00 Uhr
Goto Top
Man hätte auch einfach die lokale Forums-Suche anwerfen können
Musterlösungen: Dateien verschieben abhängig vom Teil des Dateinamens

Batch
@echo off &setlocal enabledelayedexpansion
set "quelle=d:\daten"  
for %%a in ("%quelle%\*.*") do (  
    set "name=%%~na"  
    set "folder=%%~dpa!name:~7,3!"  
    if not exist "!folder!" md "!folder!" >nul  
    move "%%a" "!folder!"  
)
Powershell
ls 'd:\Quelle' -File | ?{$_.Basename.length -ge 10} | group {$_.Basename.Substring(7,3)} |%{  
    $target = join-path $_.DirectoryName $_.Name
    if(!(Test-Path $target)){md $target -force | out-null}
    $_.Group | move-item -Destination $target -Force -verbose
}