master-chief1966

XML.Dateien sortieren in mehrere Ordner BAT

Hallo liebe IT Profis,
ich benötige dringend euer Fachwissen.
Wir müssen viele Dateien händisch vom Desktop auf ein externes Laufwerk in die endsprechenden Ordner sortieren.
Es sollte so funktionieren:

-Verbindung per Cisco automatisch herstellen (wenn möglich)

-Externes Laufwerk verbinden

-Daten synconisieren und sortieren mit Desktop- auf Externes Laufwerk in verschiedene Ordner

-Die Dateien werden als z.B :40233_211.xml /40565_212.xml auf Desktop erstellt.

Nun möchte ich das die Dateien automatisch in den richtigen Ordner einsortiert werden.

Also *_211.xml in den vorhandenen Ordner 211 und die *_212.xml in den Ordner 212.

Ist der Ordner nicht vorhanden, sollte er erstellt werden. Wichtig zum sortieren ist nur die Zahl am ende der Datei (211,212 usw immer dreistellig)

Ich habe schon eine Bat aus dem Forum angepasst, die auch einigermaßen funktioniert (keine Sortierung, u.sw)

Diese Bat würde ich gerne anpassen ,so das wir alle die bat nutzen können.

Ich würde mich über eure Hilfe und Unterstützung sehr freuen.

NET USE h:\\de.***group.net\data\D31/persistent :no

CLS

@Echo OFF

COLOR 1F

REM ****************************************************************************

REM ** SCRIPT : FolderSync

REM ** BESCHREIBUNG: F�� die Synchronisation zweier Verzeichnisse durch (Inkrementell, Master/Slave!)

REM ** AUTOR : **

REM ** VERSION : 24.07.2020

REM **

REM ** HINWEISE : - Ben��t ROBOCOPY (ab Windows Vista vorinstalliert)

REM ** - F��mlaute in ECHO: 佄 ����ĽΠֽ٠ܽڍ

RE
CHCP 1252

REM KONFIGURATION ----------------------

REM Quell- und Zielverzeichnis angeben. WICHTIG:

REM Verzeichnisse die Leerzeichen enthalten m��n mit Anf��ngszeichen umschlossen werden

REM Kein abschlieࠥnder Backslash \, auࠥr wenn komplettes Laufwerk syncronisiert werden soll

SET quelle=C:\Users\%username%\Desktop\ADDAS\Testdateien

SET ziel=H:\Test\ADDAS\211

REM ------------------------------------

CHCP 850

CLS



ECHO.

ECHO ++++++++++++++++++++++++++++++

ECHO ++++ Run ADDAS SyncME Now +++

ECHO ++++++++++++++++++++++++++++++

ECHO.



SET timestamp=%date:~-4%%date:~3,2%%date:~0,2%-%time:~0,2%%time:~3,2%



ECHO.

ECHO VERZEICHNISSE CHECKEN...

IF NOT EXIST %quelle% GOTO ERRSOURCE

IF NOT EXIST %ziel% GOTO ERRDEST



ECHO.

ECHO SYNCHRONISIERUNG STARTEN...

ECHO.

ROBOCOPY %quelle% %ziel% /COPY:DAT /MIR /R:3 /W:20

IF %ERRORLEVEL% GEQ 8 GOTO ERRCOPY

GOTO END



REM FEHLERBEHANDLUNG

:ERRCOPY

ECHO.

ECHO FEHLER: Mindestens eine Datei konnte nicht kopiert/geloecht werden!

ECHO %timestamp% FEHLER: Mindestens eine Datei konnte nicht kopiert/geloescht werden! >> "%~n0.log"  

GOTO ERREND

:ERRSOURCE

ECHO.

ECHO FEHLER: Cisco oder Externes Laufwerk nicht verbunden!

ECHO %timestamp% FEHLER: Cisco oder Externes Laufwerk nicht verbunden! (%quelle%) >> "%~n0.log"  

GOTO ERREND

:ERRDEST

ECHO.

ECHO FEHLER: Zielverzeichnis nicht vorhanden!

ECHO %timestamp% FEHLER: Zielverzeichnis nicht vorhanden! (%ziel%) >> "%~n0.log"  

GOTO ERREND



REM SHIT HAPPENS

:ERREND

COLOR 4F

ECHO.

ECHO ADDAS SyncME MIT FEHLERN ABGESCHLOSSEN

ECHO.

ECHO Dieses Fenster schliesst sich in 20 Sekunden.

ECHO.

ping -n 20 localhost >nul

EXIT



REM HAPPY END

:END

COLOR 2F

ECHO.

ECHO ADDAS SyncME ERFOLGREICH ABGESCHLOSSEN

ECHO.

ECHO Dieses Fenster schliesst sich in 20 Sekunden.

ECHO.

ping -n 20 localhost >nul

EXIT
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 597035

Url: https://administrator.de/forum/xml-dateien-sortieren-in-mehrere-ordner-bat-597035.html

Ausgedruckt am: 05.05.2025 um 12:05 Uhr

145033
145033 18.08.2020 aktualisiert um 10:12:15 Uhr
Goto Top
@echo off &setlocal
REM ....
REM Hier Netzlaufwerk verbinden ....
REM ....
set "quelle=%USERPROFILE%\Desktop\ADDAS\Testdateien"  
set "ziel=H:\Test\ADDAS"  
for %%a in ("%quelle%\*.xml") do (  
	for /f "tokens=2 delims=_" %%b in ("%%~na") do (  
		if not exist "%ziel%\%%~b" md "%ziel%\%%~b"  
		move "%%a" "%ziel%\%%~b\"  
	)
)
Master-Chief1966
Master-Chief1966 18.08.2020 um 14:40:28 Uhr
Goto Top
Hallo kleiber,

erstmal danke für deine Unterstüzung und Hilfe.
Ich habe dein Script getestet, leider passiert garnichts.
Die Dateien bleiben im Ordner werden nicht Kopiert und es wird auch kein Ordner 211 oder 313 u.s.w erstellt.
145033
145033 18.08.2020 aktualisiert um 15:31:08 Uhr
Goto Top
Funktioniert hier einwandfrei (getestet), hast du wohl vergessen das Drive-Mapping einzufügen wo ich das geschrieben habe oder Pfade fehlerhaft eingetragen.
Master-Chief1966
Master-Chief1966 18.08.2020 um 19:14:25 Uhr
Goto Top
Hallo Kleiber,

bin jetzt etwas ratlos, dein Script habe ich zum testen wie unten angezeigt angepasst.Wo soll ich das Drive-Mapping einfügen bzw was soll ich dort eintragen ?
@echo off &setlocal
REM ....
REM Hier Netzlaufwerk verbinden ....
REM ....
set "quelle=C:\%USERPROFILE%\Desktop\ADDAS\Testdateien"  
set "ziel=D:\Test\ADDAS"  
for %%a in ("%quelle%\*.xml") do (  
	for /f "tokens=2 delims=_" %%b in ("%%~na") do (  
		if not exist "%ziel%\%%~b" md "%ziel%\%%~b"  
		move "%%a" "%ziel%\%%~b\"  
	)
)
145033
145033 18.08.2020 aktualisiert um 22:01:04 Uhr
Goto Top
set "quelle=C:\%USERPROFILE%\Desktop\ADDAS\Testdateien"
Hier ist schon der erste Fehler, schau dir einfach mal selbst an was die %userprofile% Umgebungsvariable liefert, dann siehst du ganz schnell da dein selbst hinzugefügtes "c:\" da nicht hin gehört weil das schon Teil der Variablen ist!!
Wo soll ich das Drive-Mapping einfügen bzw was soll ich dort eintragen ?
Na da wo ich das im Code mit Kommentaren vermerkt habe, dein net use einfügen! Also verkackeiern kannst du dich bitte selbst ...Mitdenken bitte erwünscht.

Nee nee nee da liefert man es schon mundgerecht und das wird dann auch noch verwurschtelt... Koppschüttel.

Bin dann mal wech.
Master-Chief1966
Master-Chief1966 19.08.2020 um 07:26:15 Uhr
Goto Top
Hallo Kleiber,

Verkackeiern wollte ich niemanden. Ich habe dein Script auf meinem PC testen wollen ohne Net Use. Danach wollte ich das dieses Script sich syncronisiert mit Net Use, da dort schon viele Dateien liegen . Es tut mir leid, das ich dich verärgert habe, aber ich bin kein Profi und versuche nur meinen Kollegen und mir es leichter zu machen. Vielen Dank für deine Hilfe