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!
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 186110
Url: https://administrator.de/contentid/186110
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo RetroDude!
Du kannst ja Wildcards verwenden - also etwa:
- eine Schleife ist dann gar nicht nötig ...
... aber falls Du dennoch eine verwenden wolltest, dann etwa so (in VBA; VBS kennt kein "
Grüße
bastla
Du kannst ja Wildcards verwenden - also etwa:
strFile = strSource & "\DhcpSrvLog-???.log"
... 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
bastla