Dateien umbennen VBS

daniel2001

Mitglied
Hallo, ich muss jeden Tag einen Ordner, der 50 Dateien enthält umbennen.

Aus dem Dateinamen:

datei1_X01.pdf

muss

Datum_Datei1.pdf

werden.
Also vor jeder Datei muss das aktuelle Datum geschrieben werden und die Datei muss hinten abgeschnitten werden wobei das "X01" nicht immer dort steht, es kann auch X02 oder X03 dort stehen.

Bekommt man sowas mit VBS hin? Der einfachheit halber soll dieses Programm dann nachts automatisch die Dateien umbennen.
Für Tipps oder ein fertiges Script bin ich dankbar!
 
Hallo daniel2001,

von meinen ersten Überlegungen her ist es mit VB machbar.

Befehl könnte folgendermaßen aussehen:

name Ordnerpfad & "\" & "datei1_X01.pdf", Ordnerpfad & "\" & Date(Format(NOW,"yyyymmdd")) & "_Datei1.pdf"

Nun muss das Ganze in einer Schleife eingebaut werden. Doch dazu muss ich aus den vielen Dateien eine Struktur erkennen. Nach welchen Logorythmus läuft den das Ganze.

Läuft das - X01 bis X50 oder wie? Sollen die umbenannten Dateien auch hochgezählt werden?

Dann müsste noch ein Timer aktiviert werden, der dann aller 24 Stunden den Ordner in einer Schleife durchläuft.

Du siehst, da sind noch ein paar Informationen notwendig.

Gruß ANI
 
Hallo Ani, schon mal schönen Dank für deine Antwort.

Hier mal eine Auswahl an Dateinamen:

RAZ01R01.pdf
RAZ02R01.pdf
RAM01R01.pdf
RGZ01R01.pdf
RGZ03Q01.pdf

Die Zahl hinten also R01 bzw. Q01 ist das aktuelle Datum an dem die Datei erzeugt wurde.

Dieses muss halt abgeschnitten werden und das Datum neu davorgeschrieben, so dass die Dateien anschließend so aussehen:

010110_RAZ01.pdf
010110_RAZ02.pdf
010110_RAM01.pdf
010110_RGZ01.pdf
010110_RGZ03.pdf

Ist das so verständlich?
 
Hallo daniel2001

So wie ich dies erkennen kann bleibt ein Teil aus 5 Zeichen vom Dateinamen über.

Dim newName as String

newName = Mid$("RAZ01R01.pdf",1,5) & ".pdf"

name Ordnerpfad & "\RAZ01R01.pdf", Ordnerpfad & "\" & Date(Format(NOW,"yyyymmdd")) & "_" & newName

Damit schneidest Du schon mal den ersten Teil vom alten Dateiname ab, um ihn weiter verwenden zu können.

Das Auslesen aus dem Ordner kannst Du ja mit einer Filelistbox ermöglichen. Die lässt sich dann besser in einer Schleife auslesen.

Dim x%, newName as String

For x = 0 to Filelistbox.List.Count
newName = Mid$(Filelistbox.List(x),1,5) & ".pdf"
name Filelistbox.List(x), newName
Next x

Das ist mal so auf die Schnelle aus dem Finger gesaugt. Dies musst Du natürlich für Deine Zwecke umbasteln.

Wenn ich Dir aber den gesamten Code für Dein Vorhaben schreiben soll, brauch ich aber noch ein spezielles Konzept von Dir.

Gruß ANI
 
Zurück