Jump to content

Komplexes Problem - Ordner Restrukturierung


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich weiß nicht ob das wirklich der richtige Ort für das Thema ist, aber ich denke eine Skriptlösung ist hier das beste.

Es liegt folgendes Problem vor:

In einer MySQl-Datenbank existiert eine Tabelle mit Pfad-Verweisen auf bestimmte abgelegte Daten.

Z.b.:

ID          Pfad

001        C:\2013-02-05\2013.pdf

 

Nur wurde scheinbar über Jahre hinweg keine feste Struktur für die Dateiablage eingehalten, so dass es zum einen keine durchgehenden laufenden Nummern existieren und auch die Ordner jeeils ein unterschiedlichen Aufbau besitzen (z.B. 2013_02_05 oder 2013-02-05).

 

Optimal Zustand wäre, wenn sämtliche Pfade und Dateinamen folgenden Aufbau hätten: C:\2013_02_05\2013_0001.pdf

2013_02_05 wäre das Erstell- oder Anlagedatum der jeweiligen Datei(en) und 2013_0001.pdf setzt sich aus dem Jahr und einer durchgehend laufenden Nummer zusammen.

 

Wie kann ich hier am besten vorgehen, gibt es hier Skripts, Programme o.ä. die so etwas können?

Vor allem wie kann ich gewährleisten, dass nach der Restrukturierung der Ordner- und Dateiablage auch die Verweise in der Datenbank noch korrekt bleiben.

 

Ich hoffe ihr könnte mir hier weiterhelfen.

Falls das Thema in einem anderen Thread besser aufgehoben ist, bitte verschieben!

 

Vielen Dank + viele Grüße!

 

Adrjan

bearbeitet von Adrjan
Link zu diesem Kommentar

Hallo Martin,

 

prinzipiell geht das schon in die Richtung.

Ich weiß nur nicht wie ich das praktisch mit Programmen wie AntRenamer oder Bulk Rename hin bekomme.

 

Insgesamt soll am Ende einehitlich folgende Datei/Ordnerstruktur entstehen: O:\2012\2012_01_01\2012_0001

Hierbei soll für jweiligen Tag ein eigener Überordner "2012_01_01" entstehen, in diesem dann die entsprechenden PDFs, identifiziert anch Änderungsdatum, einsortiert werden.

Die PDFs bekommen zum einen eine Jahreszahl und eine durchgehende (durch das Jahr 2012) laufende Nummer (0001...XXXX).

 

Ich habe mir folgenden Ablauf  ausgedacht:

- Alle PDFs unterhalb des "2012"-Ordners identifizieren

- Änderungsdatum der einzelnen PDFs scannen

- Ordner Anlegen auf Basis des Änderungsdatums "JJJJ_MM_TT" (Für jedes Änderungsdatum existiert ein Ordner in dem alle PDFs mit dem selben Änderungsdatum liegen)

- PDF-Datei in o.g. Order abspeichern und nach Schema "JJJJ_LFDNR.pdf" abspeichern

 

- Die Software die diese Schritte ausführt, muss den Pfad vorher und nachher in eine LOG-Datei speichern

- Aus den Pfad-Angaben in Log-Datei können dann SQL-Statements entworfen werden mit der dann die Datenbankeinträge aktualisiert werden können.

 

Wie kann ich hier vorgehen?

 

Nochmals vielen Dank für jede Unterstützung.

 

Viele Grüße

 

EDIT:

 

Ich habe evtl. an folgendes BATCH-Skript gedacht:

 

@Echo off & setlocal
 set "Quelle=D:\START\"
 set "Ziel=D:\ZIEL\"
 
 for %%a in ("%Quelle%*") do (
     if NOT "%%~nxa"=="%~nx0" (
         Echo Verarbeite Datei "%%a"
         set "fdate=%%~ta"
         setlocal enabledelayedexpansion
         set "fday=!fdate:~0,2!"
         set "fmonth=!fdate:~3,2!"
         set "fyear=!fdate:~6,4!"
        set "folname=!fyear!_!fmonth!_!fday!"
        md "%Ziel%!folname!" 2>nul
         Echo Verschiebe Datei "%%a" nach "!folname!"
         move "%%a" "%Ziel%!folname!\"
         endlocal
     )
 )
 

Aber zum einen scannt der Befehl %a keine Unterordner und eine Datei-Umbennenung sowie Protokollierung in eine Log-Datei kann es auch nicht.
 :-(

bearbeitet von Adrjan
Link zu diesem Kommentar

Ich würde dafür Powershell anschauen. Das verschieben in bestimmte Unterorder ist in jedem Fall kein Problem und sehr einfach umzusetzen.

Des weiteren kannst du mit Powershell auf einen Dot.Net Provider für die Datenbank zugreifen und die Datenbank anpassen. Habe das für SQL Server und Oracle schon genutzt. Mit MySql wird das sicher auch gehen.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...