http://dieseyer.de • all rights reserved • © 2011 v11.4
'v5.1*****************************************************
' File: Ordner-Leeren.vbs
' Autor: dieseyer@gmx.de
' http://dieseyer.de
'
' Leert einen Ordner, in dem die enthaltenen Dateien in
' einen anderen Ordner kopiert werden. Gibt es dort bereits
' Dateien mit gleichen Namen, wird eine dreistellige Zahl
' vor der Dateiendung eingefügt.
' Unterordner werden nicht abgearbeitet.
'*********************************************************
Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl
Dim WSHShell : Set WSHShell = WScript.CreateObject("WScript.Shell")
Dim fso : Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Const QuellVerz = "c:\test1\" ' unbedingt mit \ am Ende
Const ZielVerz = "c:\test2\" ' unbedingt mit \ am Ende
' Zielverzeichnis anlegen, wenn nicht vorhanden
if not fso.FolderExists( ZielVerz ) then fso.CreateFolder ( ZielVerz )
' Wenn es das Quellverzeichnis nicht gibt, macht das Skript keinen Sinn - Quit
if not fso.FolderExists( QuellVerz ) then
MsgBox UCase( QuellVerz ) & " existiert nicht!" & vbCRLF & vbCRLF & " . . . das ist das Ende.", , WScript.ScriptName
WScript.Quit
End If
Do
DateiCheck QuellVerz, ZielVerz ' Sub - Aufruf
If not fso.FileExists( WScript.ScriptName ) Then Exit Do ' sobald es das Skript nicht mehr gibt
WScript.Sleep 1000*10 ' 10s warten
Loop
MsgBox "Das ist das Ende . . . ", , WScript.ScriptName
WScript.Quit
' *********************************************************
Sub DateiCheck( QuellVerz, ZielVerz ) ' Anfang
' *********************************************************
' Dim oFiles, Folder, oFolders, QuellDatei, ZielDatei
' Dim i, n, Text, Pfad, DateiX
Dim i, n
Dim oFolders, oFiles, DateiX
Dim QuellDatei, ZielDatei
Set oFolders = fso.GetFolder( QuellVerz )
Set oFiles = oFolders.Files
For Each DateiX In oFiles ' jede Datei im Ordner
QuellDatei = QuellVerz & DateiX.Name ' Datei mit komplettem Pfad
If not fso.FileExists( ZielVerz & DateiX.Name ) Then ' gibt es diese Datei im ZielVerz. nicht
On Error Resume Next ' verhindert den Skriptabbruch bei Fehler
fso.MoveFile QuellDatei, ZielVerz & DateiX.Name ' Datei ins ZielVerz. verschieben
On Error GoTo 0
Else
i = 0 ' Dateinummer
Do
n = i
If Len( n ) = 1 Then n = "0" & n ' auf zweistellig erweitern
If Len( n ) = 2 Then n = "0" & n ' auf dreistellig erweitern
n = "_" & n & "." ' erweitern um Untersrtich und Punkt
ZielDatei = ZielVerz & fso.GetBaseName( QuellDatei ) & n & fso.GetExtensionName( QuellDatei )
If not fso.FileExists( ZielDatei ) Then
On Error Resume Next ' verhindert den Skriptabbruch bei Fehler
fso.MoveFile QuellDatei, ZielDatei
On Error GoTo 0
Exit Do
End If
i = i + 1 ' Dateinummer wird hochgezählt
Loop
End If
Next
Set oFiles = nothing
Set oFolders = nothing
End Sub ' DateiCheck()
http://dieseyer.de • all rights reserved • © 2011 v11.4