Moin liebe Gemeinde,
ich habe das Script noch um eine LogDatei erweitert!
Was ich aber dazu bräucht, wo ich derzeit aber den Wald vor Bäumen nicht sehe, ist ein ErrorHandling! Mit
On Error Resume Next
möchte ich vermeiden, das ich ein Laufzeitfehler, bzw Zugriffverletzung bekomme, wie es leider nach 20% der Dateien passiert ist!
Jedoch soll, wenn das Script aufgrund des Errors ins nächste File springt, das mir die übersprungende Datei ins Log geschrieben wird, so kann ich später sehen, welche Datei nicht unbenamst wurde!
Script:
Option Explicit
Dim oFso, oFolder, oShell, objFile, objShell, objFolder, objFolderItem
Dim sPfad, NewFileName, MyFile, strNewName, objPath, intValue
Dim SearchString, SearchChar, Pos, ReplaceWith, oFolderSub, OnlyPath
Call FolderAuswahl
Sub FolderAuswahl
Const WINDOW_HANDLE = 0
Const NO_OPTIONS = 0
Const OverWriteFiles = True
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder (WINDOW_HANDLE, "", NO_OPTIONS, "H:\")
Set objFolderItem = objFolder.Self
sPfad = objFolderItem.Path
End Sub
Call Main
Sub Main
Set oFso = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("WScript.Shell")
SearchChar = " " ' Search for " ".
Set oFolder = oFso.GetFolder(sPfad)
ReplaceFileName oFolder
WScript.Echo "Auftrag ausgeführt!"
End Sub
Call ReplaceFileName (oFolder)
Sub ReplaceFileName(oFolder)
For Each objFile In oFolder.Files
SearchString = objFile.Name
ReplaceWith = "_"
Pos = Instr(1, SearchString, SearchChar)
If Len(Pos) > 0 Then
NewFileName = Replace(SearchString, SearchChar, ReplaceWith)
OnlyPath = Left(objFile.Path,InStrRev(objFile.Path, "\"))
Set MyFile = oFso.GetFile(OnlyPath & SearchString)
MyFile.Move OnlyPath & "\" & NewFileName
End If
Next
For Each oFolderSub In oFolder.SubFolders
ReplaceFileName oFolderSub
Next
End Sub
Call LogDatei
Sub LogDatei
lg
Andy