staga75
Goto Top

VBS Dateien kopieren, verschieben und löschen

Hi Leute

ich habe hier ein Script welches ich mit Hilfe dieses Forums erstellt habe.

Dim fso, files, file, datei, Suchstring, SL
Suchstring="103360"  
datei=date-2
SL = Len(Suchstring)
Set fso = CreateObject ("scripting.FileSystemObject")  
set files = fso.getFolder("C:\Temp\test1").files  
For Each file In files
if file.datelastmodified < datei Then
If Left(file.Name, 6) = "103360" Then  
fso.CopyFile file, "C:\Temp\test2\"  
End If
End If
next
Dim fso, files, file, datei, Suchstring, SL
Suchstring="103360"  
datei=date-2
SL = Len(Suchstring)
Set fso = CreateObject ("scripting.FileSystemObject")  
set files = fso.getFolder("C:\Temp\test2").files  
For Each file In files
if file.datelastmodified < datei Then
If Left(file.Name, 6) = "103360" And fso.GetExtensionName(file.name) = "XML" Then  
fso.CopyFile file, "C:\Temp\test3\"  
End If
End If
next

Ich möchte nun gerne folgende Funktionen einbauen:

1. Anstatt die XML zu kopieren möchte ich diese gerne VERSCHIEBEN.
- Habe also anstatt fso.CopyFilemit einfach fso.MoveFile "C:\Temp\test2\*.*", "C:\Temp\test3\" in der Zeile 23 eingesetzt
Leider verschiebt er alle Dateien. Jedoch sollte es nur Dateien welche xx älter, denn Namen 103360 und die Endung XML haben verschieben.

2. Danach möchte ich im Ordner C:\Temp\test3 alle Dateien löschen welche xx älter, den Namen 103360 und die Endung XML haben
- Hier habe ich keine Schimmer wie ich das anstellen soll. Habe nur geschafft den ganzen Inhalt zu löschen.

Ich währe sehr dankbar wenn mir jemand weiterhelfen kann da ich ein absoluter Anfänger bin was VBS und Programierung bzw. Scripting angeht.

Gruss Staga

Content-Key: 177922

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

Printed on: April 26, 2024 at 02:04 o'clock

Mitglied: 60730
60730 Dec 20, 2011 at 09:41:06 (UTC)
Goto Top
Moin,

ich habe hier ein Script welches ich mit Hilfe dieses Forums erstellt habe.
ich währe sehr dankbar wenn mir jemand weiterhelfen kann da ich ein absoluter Anfänger bin was VBS und Programierung bzw. Scripting angeht.

Nun dann...

Was genau macht denn das Script?
Es sind übrigens zwei Sachen, die das Script macht.

Das ist ja relativ einfach und wenn du es schaffst uns die Befehlsfolgen zu erklären, kommst du bei der Gelegenheit von alleine drauf und das sollte das Ziel sein.
Sonst bist du bei der nächsten Änderung wieder der Ochs vorm Berg und genau das wollen wir hier keinem antun.

Gruß
Member: staga75
staga75 Dec 20, 2011 at 09:50:48 (UTC)
Goto Top
Hallo

Ja ich verstehe schon was du meinst. Ich habe es ja versucht (siehe Beitrag wo steht Zeile 23. Jedoch ist mir nicht klar wieso die vorhergehenden Argument Zeile 15 -22 beim verschieben oder löschen nicht berücksichtigt werden.

Gruss
Staga
Mitglied: 60730
60730 Dec 20, 2011 at 09:53:54 (UTC)
Goto Top
nein...

du hast zwei Schleifen innerhalb dieser wird etwas überprüft und Zeile 20 sagt dir doch.....

Und wenn du innerhalb dieser Abfrageschleife mit Platzhaltern werkelst - dann muß das in die Grütze hauen.
Mitglied: 76109
76109 Dec 20, 2011 at 10:05:56 (UTC)
Goto Top
Hallo staga75!

Bei der Gelegenheit könntest Du auch die Zeile 10 nochmal anschauen oder etwas vereinfachen mit
file.Move "C:\Temp\test3\"
beim verschieben und mit
file.Copy "C:\Temp\test3\"
beim kopieren

Und damit es auch mit der Dateierweiterung in Kleinbuchstaben funktioniert (*.xml und *.XML):
If Left(file.Name, 6) = "103360" And LCase(fso.GetExtensionName(file.Name)) = "xml" Then

Gruß Dieter
Member: staga75
staga75 Dec 20, 2011 at 10:44:39 (UTC)
Goto Top
Hallo zusammen

Danke für die Hinweise. Ich habe nun mein Script angepasst und bis auf das löschen funktioniert das ganze. Vielleicht habt Ihr nochmals einen Tipp für mich.
Dim fso, files, file, datei, Suchstring, SL
Suchstring="103360"  
datei=date-2
SL = Len(Suchstring)
Set fso = CreateObject ("scripting.FileSystemObject")  
set files = fso.getFolder("C:\Temp\test").files  
For Each file In files
if file.datelastmodified < datei Then
If Left(file.Name, 6) = "103360" Then  
fso.CopyFile file, "C:\Temp\test1\"  
End If
End If
next
Suchstring="103360"  
datei=date-2
SL = Len(Suchstring)
Set fso = CreateObject ("scripting.FileSystemObject")  
set files = fso.getFolder("C:\Temp\test1").files  
For Each file In files
if file.datelastmodified < datei Then
If Left(file.Name, 6) = "103360" And fso.GetExtensionName(file.name) = "XML" Then  
fso.MoveFile file, "C:\Temp\test2\"  
End If
End If
next
Suchstring="103360"  
datei=date-2
SL = Len(Suchstring)
Set fso = CreateObject ("scripting.FileSystemObject")  
set files = fso.getFolder("C:\Temp\test").files  
For Each file In files
if file.datelastmodified < datei Then
If Left(file.Name, 6) = "103360" And fso.GetExtensionName(file.name) = "XML" Then  
fso.DeleteFile, file "C:\Temp\test\"  
End If
End If
next

Bei der Ausführung kommt die eine Fehlermeldung Error Type Mismatch: 'DeleteFiles'
Member: staga75
staga75 Dec 20, 2011 at 11:11:43 (UTC)
Goto Top
Ok habe es selbst gefunden. Ich habe den Pfad in der Zeile 34 gelöscht.

Danke nochmals für eure Unterstützung.

gruss
Staga