VBScript zum automatischen Verschieben von .pdf-Dateien
Hallo zusammen,
ich bin neu hier im Forum und hätte eine Frage zum Thema VBS. Für meine Arbeit muss ich ein Script erstellen, bin allerdings absolut unwissend in diesem Bereich. Folgende Aufgabenstellung ist zu lösen:
Aus drei verschiedenen Ordnern (C:\NeuerOrdner1 , C:\NeuerOrdner2 , C:\ NeuerOrdner3) sollen alle .pdf-Dateien in drei andere Ordner (C:\Test\Ordner1 , C:\Test\Ordner2 , C:\Test\Ordner3) verschoben werden und zwar so, dass der Inhalt aus C:\NeuerOrdner1 in C:\Test\Ordner1 landet.
Das Skript soll das alle zehn Sekunden machen, aber nur pdf.-Dateien, die älter als fünf Sekunden sind und das Ganze noch in Dauerschleife, ohne Fehlermeldung.
Ich habe mir selber ein paar Sachen aus den Code-Schnipseln eines Arbeitskollegen zusammengebastelt, allerdings ohne genauen Plan.
Hier ist der momentane Code:
Hierbei werden allerdings alle Dateien verschoben und auch nur aus einem Ordner.
Über einsteigerfreundliche Tips und Tricks würde ich mich sehr freuen.
Grüße
lordiliner
ich bin neu hier im Forum und hätte eine Frage zum Thema VBS. Für meine Arbeit muss ich ein Script erstellen, bin allerdings absolut unwissend in diesem Bereich. Folgende Aufgabenstellung ist zu lösen:
Aus drei verschiedenen Ordnern (C:\NeuerOrdner1 , C:\NeuerOrdner2 , C:\ NeuerOrdner3) sollen alle .pdf-Dateien in drei andere Ordner (C:\Test\Ordner1 , C:\Test\Ordner2 , C:\Test\Ordner3) verschoben werden und zwar so, dass der Inhalt aus C:\NeuerOrdner1 in C:\Test\Ordner1 landet.
Das Skript soll das alle zehn Sekunden machen, aber nur pdf.-Dateien, die älter als fünf Sekunden sind und das Ganze noch in Dauerschleife, ohne Fehlermeldung.
Ich habe mir selber ein paar Sachen aus den Code-Schnipseln eines Arbeitskollegen zusammengebastelt, allerdings ohne genauen Plan.
Hier ist der momentane Code:
Option Explicit
On Error Resume Next
Dim fso, net, path, oFolder, oSubFolder, folder, files, lgf, file, filn, fs, i, loesch
i = 0
Const src = "C:\NeuerOrdner1"
Const targetpdf = "C:\Test\NeuerOrdner1\"
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set net = WScript.CreateObject("Wscript.Network")
For i = 1 To 2
WScript.Sleep(10000)
copy src, targetpdf
i = i - 1
Next
Sub copy (src, target)
Set folder = fso.GetFolder(src)
Set files = Folder.Files
For Each file In files
filn = file
If Datediff("s", file.DateCreated, now) > 5 Then
Set fs = fso.GetFile (filn)
If fso.FolderExists (target) Then
fs.copy target
set loesch = createobject("scripting.filesystemobject")
loesch.deletefile src + "\*.pdf", True
Else
End If
End If
Next
End Sub
Hierbei werden allerdings alle Dateien verschoben und auch nur aus einem Ordner.
Über einsteigerfreundliche Tips und Tricks würde ich mich sehr freuen.
Grüße
lordiliner
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197835
Url: https://administrator.de/forum/vbscript-zum-automatischen-verschieben-von-pdf-dateien-197835.html
Ausgedruckt am: 23.12.2024 um 19:12 Uhr
2 Kommentare
Neuester Kommentar
Hi!
Eigentlich wollte ich mich mit einer Erklärung wie du das Problem lösen kannst begnügen, da ich mich aber noch an meine Anfänge erinnern kann und froh war mal was Funktionierendes studieren zu können, bekommst du doch etwas mehr als nur gutgemeinte Tipps.
Gleich mal als allererstes die Hilfe zu VBS als Download >> http://wintuc.com/wsh-vbs/scr56de.chm/script56.chm
DA werden alle Funktionen, Methoden Schlüsselwörter, Operatoren usw erklärt. Auch findest du sehr gute Beispiele, kurz und knackig erklärt ohne umständliches Gedöhns rundherum das nur verwirrt anstatt den Knoten zu lösen.
Ansonsten hilfts auch mal einen Teil des Codes in Google einzugeben.
Vervielfältigen musst du aber wirklich selbst.
Viel Spaß damit!
Mayho
'CODE =====================================================================================
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject")
Dim Folder1: Folder1 = "C:\TEST1\"
Dim Folder2: Folder2 = "C:\TEST2\"
'Object des gewünschten Folders erstellen
Set F1 = objFso.GetFolder(Folder1)
'Do-Schleife wiederholt sich bis zur Abbruchbedingung
'Achtung!! Keine Abbruchbedingung = Kein Ende deines Scripts.
'Im schlimmsten Fall hast du einen Speicherüberlauf und die Mühle friert ein.
'Ungespeicherte Arbeiten gehen verloren, denn da hilft nur ein Hardreset
Do
'Eine For-Schleife durchläuft immer wieder den Ordner.
'das ".Files" hinten besagt, dass Files im Ordner gelesen werden sollen
'das gibt es auf für ".subfolders" und noch einiges anderes
For Each item In F1.Files
'Right kannst du ja gleich mal in der Hilfe nachschauen
If Right(item.Name, 3) = "pdf" Then
'Copy oder doch Move?
'objFso.CopyFile item.Path, Folder2, True
objFso.MoveFile item.Path, Folder2
End If
Next
'Ganze 10 Minuten waren....
'Hier werden Tausenstel gezählt
WScript.Sleep 60000
Loop
Eigentlich wollte ich mich mit einer Erklärung wie du das Problem lösen kannst begnügen, da ich mich aber noch an meine Anfänge erinnern kann und froh war mal was Funktionierendes studieren zu können, bekommst du doch etwas mehr als nur gutgemeinte Tipps.
Gleich mal als allererstes die Hilfe zu VBS als Download >> http://wintuc.com/wsh-vbs/scr56de.chm/script56.chm
DA werden alle Funktionen, Methoden Schlüsselwörter, Operatoren usw erklärt. Auch findest du sehr gute Beispiele, kurz und knackig erklärt ohne umständliches Gedöhns rundherum das nur verwirrt anstatt den Knoten zu lösen.
Ansonsten hilfts auch mal einen Teil des Codes in Google einzugeben.
Vervielfältigen musst du aber wirklich selbst.
Viel Spaß damit!
Mayho
'CODE =====================================================================================
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject")
Dim Folder1: Folder1 = "C:\TEST1\"
Dim Folder2: Folder2 = "C:\TEST2\"
'Object des gewünschten Folders erstellen
Set F1 = objFso.GetFolder(Folder1)
'Do-Schleife wiederholt sich bis zur Abbruchbedingung
'Achtung!! Keine Abbruchbedingung = Kein Ende deines Scripts.
'Im schlimmsten Fall hast du einen Speicherüberlauf und die Mühle friert ein.
'Ungespeicherte Arbeiten gehen verloren, denn da hilft nur ein Hardreset
Do
'Eine For-Schleife durchläuft immer wieder den Ordner.
'das ".Files" hinten besagt, dass Files im Ordner gelesen werden sollen
'das gibt es auf für ".subfolders" und noch einiges anderes
For Each item In F1.Files
'Right kannst du ja gleich mal in der Hilfe nachschauen
If Right(item.Name, 3) = "pdf" Then
'Copy oder doch Move?
'objFso.CopyFile item.Path, Folder2, True
objFso.MoveFile item.Path, Folder2
End If
Next
'Ganze 10 Minuten waren....
'Hier werden Tausenstel gezählt
WScript.Sleep 60000
Loop