Code:
@echo off
cls
set SRC=Sammelverzeichnis
set DEST=\\servername\share\folder
for /f "tokens=4" %%i in ('dir %SRC% ^| find "__"') do (
for /f "tokens=1-3 delims=_" %%j in ("%%i") do (
REM md %DEST%\%%j 2>nul
REM md %DEST%\%%j\%%k 2>nul
echo copy %SRC%\%%i %DEST%\%%j\%%k\%%l
REM copy %SRC%\%%i %DEST%\%%j\%%k\%%l >nul
if %errorlevel% EQU 0 (
echo Datei %%i erfolgreich nach %%j\%%k\%%l kopiert
) else (
echo FEHLER beim Verarbeiten der Datei %%i
)
)
)
Die Variablen
SRC und
DEST musst du noch anpassen.
Im Moment gibt das Skript nur aus, was es mit den im Ordner
SRC gefundenen Dateien machen würde.
Sollte das alles in Ordnung sein, musst du nur die Kommentare in der inneren FOR-Schleife entfernen und die Zeile mit dem
echo auskommentieren oder ganz raus schmeißen.
Sollen die Dateien nicht kopiert sondern verschoben werden, muss das
copy noch durch ein
move ersetzt werden.
Ein Problem gibts aber noch. Kommt irgendwo im Dateinamen ein einzelner Unterstrich vor, funktioniert das Skript nicht.