meiseed
Goto Top

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

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

Content-ID: 73616

Url: https://administrator.de/contentid/73616

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

bastla
bastla 15.11.2007 um 12:22:38 Uhr
Goto Top
Hallo MeiSeed!

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
MeiSeed
MeiSeed 15.11.2007 um 13:39:27 Uhr
Goto Top
Danke dir bastla

das du mir so schnell geholfen hast.

gruß
MeiSeed
bastla
bastla 15.11.2007 um 14:44:26 Uhr
Goto Top
Hallo MeiSeed!

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
Natürlich (wenn auch weniger übersichtlich) könntest Du die Ordner auch in eine Zeile schreiben:
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