retrodude
Goto Top

LogFiles für Kopierskript auswählen

Hallo Zusammen

Ich muss auf allen unseren DHCP Servern regelmässig die LogFiles sichern. Ich habe dazu einen kleinen Skript begonnen. Zuerst lese ich den Hostnamen aus. Anschliessend überprüfe ich ob es im Zielverzeichnis bereits einen Ordner mit diesem Namen gibt. Falls nein, wird dieser erstellt und anschliessend kopiert. Nun zu meinem Problem:

Die Logfiles sind folgendermassen abgelegt bzw. vorhanden:

DhcpSrvLog-Mon.log
DhcpSrvLog-Tue.log
DhcpSrvLog-Wen.log

.
.
.

In diesem Verzeichnis sind aber noch mehr Files inkl. der DB abgelegt. Da ich nur diese 7 Textfiles möchte, brauche ich dazu eine Schleife um meinen Skript zu ergänzen. Wie muss ich den Punkt "strFile=" ergänzen damit ich nur diese besagten Files auslesen kann uns anschliessend kopiere?

Vielen Dank im Voraus!

' Copy DHCP Logs to BackupServer  
' ------------------------------------------------  
Dim objFSO
Dim objFile

'Quellpfad  
strSource="C:\WINDOWS\system32\dhcp"  
'Zielpfad  
strDest="\\BackupServer\DHCP$"  
' ------------------------------------------------  

'Test ob Quelle vorhanden  

strFolder = strDest & "\" & GetEnvironmentValue("computername")  

Function GetEnvironmentValue(ByVal value)
Dim strReturn, wshShell
On Error Resume Next

value = trim(value)
If Left(value,1) <> "%" then value = "%" & value  
If Right(value,1) <> "%" then value = value & "%"  

Set wshShell = CreateObject("WScript.Shell")  
strReturn = wshShell.ExpandEnvironmentStrings(value)

If Err.Number <> 0 then
        strReturn = ""  
        Err.Clear
End If
     Set wshShell = Nothing

    GetEnvironmentValue = strReturn
End Function

wscript.Echo strFolder

Set objFSO=CreateObject("Scripting.FileSystemObject")  

if objFSO.FolderExists(strFolder) Then
wscript.Echo strFolder  & " Existiert!"  
objFSO.CopyFile strFile,strDest,True
If err.number=0 Then
wscript.Echo "Pfad existiert, Files wurden kopiert!" & strFile & " to " & strDest  
End If
Else
objFSO.CreateFolder(strFolder)
set objFSO=Nothing

' ******************  
strFile=
' ******************  

objFSO.CopyFile strFile,strFolder,True
If err.number=0 Then
wscript.Echo "Pfad wurde erstellt, Files wurden kopiert! " & strFile & " to " & strDest  
Else
WScript.Echo "Files konnten nicht kopiert werden!"  
End If

Content-Key: 186110

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

Printed on: April 24, 2024 at 04:04 o'clock

Member: bastla
bastla Jun 07, 2012 updated at 14:20:42 (UTC)
Goto Top
Hallo RetroDude!

Du kannst ja Wildcards verwenden - also etwa:
strFile = strSource & "\DhcpSrvLog-???.log"
- eine Schleife ist dann gar nicht nötig ...

... aber falls Du dennoch eine verwenden wolltest, dann etwa so (in VBA; VBS kennt kein "Like")
For Each File In fso.GetFolder(strSource).Files
    If File.Name Like "DhcpSrvLog-???.log" Then File.Copy strDest,True  
Next
Grüße
bastla
Member: RetroDude
RetroDude Jun 08, 2012 updated at 07:21:19 (UTC)
Goto Top
Hallo Bastla

Danke, erfüllt genau seinen Zweck!

Gruss und schönes Wochenende!

RetroDude

' ----------------------------------------------------  
' Copy DHCP Logs to Share on BackupServer  
' ----------------------------------------------------  
' Variablendeklaration  

Dim objFSO
Dim objFile
'Quellpfad  
strSource="C:\Windows\System32\DHCP"  
'Zielpfad  
strDest="\\Backupserver\DHCP$"  
'Filetypen  
strFile = strSource & "\DhcpSrvLog-???.log"  
' ----------------------------------------------------  

'Test ob Quelle vorhanden  

strFolder = strDest & "\" & GetEnvironmentValue("computername")  

Function GetEnvironmentValue(ByVal value)
Dim strReturn, wshShell
On Error Resume Next

value = trim(value)
If Left(value,1) <> "%" then value = "%" & value  
If Right(value,1) <> "%" then value = value & "%"  

Set wshShell = CreateObject("WScript.Shell")  
strReturn = wshShell.ExpandEnvironmentStrings(value)

If Err.Number <> 0 Then
        strReturn = ""  
        Err.Clear
End If
     Set wshShell = Nothing

    GetEnvironmentValue = strReturn
End Function

' wscript.Echo strFolder  

Set objFSO=CreateObject("Scripting.FileSystemObject")  

if objFSO.FolderExists(strFolder) Then
' wscript.Echo strFolder  & " Existiert!"  
objFSO.CopyFile strFile,strFolder,True
If err.number=0 Then
' wscript.Echo "Pfad existiert, Files wurden kopiert!" & strFile & " to " & strDest  
End If
Else
objFSO.CreateFolder(strFolder)
objFSO.CopyFile strFile,strFolder,True
If err.number=0 Then
' wscript.Echo "Pfad wurde erstellt, Files wurden kopiert! " & strFile & " to " & strDest  
Else
' WScript.Echo "Files konnten nicht kopiert werden!"  
End If
End If
Set objFSO=Nothing
WScript.Quit