Problem beim Script das eine Datei in ein anderen ordner kopiert und umbenennen soll
HI @ all,
ich hab da ein Script mit dem ich Datei(en) in ein anderen Ordner kopiere
und jetzt brauch ich da noch ein funktion die die Datei dann umbenennt und zwar soll an den Namen dann das aktuelle Datum drangegängt werden
hier mal das Script
Die Datei 1.zip wird jetzt inden Ordner test2 kopiert das geht auch und jetzt soll die Datei in dem test2 Ordner nicht 1.zip heißen sondern
aus 1.zip soll dann 1_2007-11-15_11:37.zip werden.
Wie kann ich das jetzt realiesieren.
Gruß
MeiSeed
ich hab da ein Script mit dem ich Datei(en) in ein anderen Ordner kopiere
und jetzt brauch ich da noch ein funktion die die Datei dann umbenennt und zwar soll an den Namen dann das aktuelle Datum drangegängt werden
hier mal das Script
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\test1\1.zip")
f1.copy ("c:\test2\")
Die Datei 1.zip wird jetzt inden Ordner test2 kopiert das geht auch und jetzt soll die Datei in dem test2 Ordner nicht 1.zip heißen sondern
aus 1.zip soll dann 1_2007-11-15_11:37.zip werden.
Wie kann ich das jetzt realiesieren.
Gruß
MeiSeed
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 73616
Url: https://administrator.de/contentid/73616
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo MeiSeed!
Vorweg zwei Anmerkungen:
Grüße
bastla
Vorweg zwei Anmerkungen:
- Auch wenn das Script nur zu Testzwecken gedacht ist, solltest Du dennoch die Dateinamen/-pfade (zB "c:\test2\") nicht als Konstante verwenden, sondern besser in eine Variable stellen - damit kannst Du diesbezügliche Änderungen an nur einer Stelle im Code durchführen.
- Einen Dateinamen mit einem enthaltenen ":" kann ich wirklich nicht empfehlen (daher ersetze ich diesen in meinem Beispiel durch einen ".").
strSourceFile = "c:\test1\1.zip"
strTargetFolder = "c:\test2"
Set fso = CreateObject("Scripting.FileSystemObject")
dtNow = Now 'Zeitpunkt festhalten und ...
'... dafür formatierten Timestamp erstellen
strTimestamp = Year(dtNow) & "-" & Month(dtNow) & "-" & Day(dtNow) & "_" & _
Replace(FormatDateTime(dtNow, vbShortTime), ":", ".")
Set f1 = fso.GetFile(strSourceFile)
strExt = fso.GetExtensionName(f1.Name) 'Dateityp auslesen
'Dateityp (inkl "." davor) aus dem Namen entfernen, Timestamp und Dateityp daran anfügen
strFileNameNew = Left(f1.Name, Len(f1.Name) - Len(strExt) - 1) & "_" & strTimestamp & "." & strExt
'Zielangabe mit vollem Pfad erstellen
f1.Copy ( strTargetFolder & "\" & strFileNameNew)
Grüße
bastla
Hallo MeiSeed!
Natürlich (wenn auch weniger übersichtlich) könntest Du die Ordner auch in eine Zeile schreiben:
Auch in den anderen Fällen läuft es auf die Verwendung einer Schleife (zB zum Auslesen aus einer Textdatei) hinaus - mehrere Variable zu verwenden, wenn Du ja eigentlich immer den gleichen Ablauf hast, ergäbe dabei keinen Sinn.
Grüße
bastla
wenn ich mehrere ordner kleichzeitig kopieren will ...
... stellt sich zunächst die Frage, ob diese Ordner immer gleich bleiben oder Du sie ohnehin irgendwie (und sei es per Eingabe/Auswahl durch den Benutzer) ermitteln musst. Im ersten Fall könntest Du folgende Schleife verwenden:arrOrdner = Array( _
"c:\test1", _
"c:\test2", _
...
...
...
"d:\KeinTest")
For Each strOrdner in arrOrdner
objOrdner = fso.GetFolder(strOrdner)
...
...
...
Next
arrOrdner = Array("c:\test1", "c:\test2", ..., ..., ..., "d:\KeinTest")
Auch in den anderen Fällen läuft es auf die Verwendung einer Schleife (zB zum Auslesen aus einer Textdatei) hinaus - mehrere Variable zu verwenden, wenn Du ja eigentlich immer den gleichen Ablauf hast, ergäbe dabei keinen Sinn.
Grüße
bastla