следующий VB скрипт, удалит файлы в Temp директории и содержать слово access.logVB скрипт + удалять файлы, содержащие слово и старше X месяц
как изменить этот сценарий VB для того, чтобы удалить только файлы, содержащие слово «access.log», и старые, затем 1 или 2 или 3 ... месяц
Я хочу добавить в VB параметр, который будет содержать месяц , и файлы будут удалены в соответствии с этим параметром
например, если Month_do_del = 12
Тогда только файлы, которые содержат access.log, что старые затем 12 месяцев будут удалены
If LCase(Right(Wscript.FullName, 11)) = "wscript.exe" Then
strPath = Wscript.ScriptFullName
strCommand = "%comspec% /k cscript """ & strPath & """"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run(strCommand), 1, True
Wscript.Quit
End If
Set objNetwork = CreateObject("WScript.Network")
strLog = "Files deleted on " & objNetwork.ComputerName & " at " & Now & VbCrLf & "===================================================="
Set objFSO = CreateObject("Scripting.FileSystemObject")
strFilesToDelete = ""
ShowSubFolders objFSO.GetFolder("G:\Temp")
If InStr(strFilesToDelete, "|") > 0 Then
arrFiles = Split(strFilesToDelete, "|")
For Each strFilePath In arrFiles
DeleteFile strFilePath
Next
ElseIf strFilesToDelete <> "" Then
DeleteFile strFilesToDelete
Else
WScript.Echo "No files were found."
strLog = strLog & VbCrLf & "No files were found."
End If
Set objLogFile = objFSO.CreateTextFile("C:\FileDeletionLog.log", True)
objLogFile.Write strLog
objLogFile.Close
Set objLogFile = Nothing
Sub ShowSubFolders(Folder)
On Error Resume Next
For Each objFile In Folder.Files
If Err.Number <> 0 Then
WScript.Echo "Error reading " & Folder.Path
strLog = strLog & VbCrLf & "Error reading " & Folder.Path
Err.Clear
On Error Resume Next
Exit For
Else
On Error GoTo 0
If Instr(UCase(objFile.Name), UCase ("access.log")) Then
If strFilesToDelete = "" Then
strFilesToDelete = objFile.Path
Else
strFilesToDelete = strFilesToDelete & "|" & objFile.Path
End If
End If
End If
Next
For Each Subfolder in Folder.SubFolders
ShowSubFolders Subfolder
Next
End Sub
Sub DeleteFile(strFilePath)
On Error Resume Next
WScript.Echo "Deleting " & strFilePath
objFSO.DeleteFile strFilePath, True
If Err.Number <> 0 Then
WScript.Echo "Could not delete " & strFilePath
strLog = strLog & VbCrLf & "Could not delete " & strFilePath
Err.Clear
On Error GoTo 0
Else
On Error GoTo 0
strLog = strLog & VbCrLf & "Successfully deleted " & strFilePath
End If
End Sub
ТНХ Jeanno пожалуйста совет - где я могу добавить ваш код в моем сценарии? – maihabunash
'If Instr (1, UCase (objFile.Name), UCase (" access.log ")) И CheckMonths (3, objFile.Name) Затем' – Jeanno
первый I +1 для вас - Еще один краткий quastion, если, например, я хочу для удаления некоторых файлов, которые содержат access.log и VAR.log и ddd.log, то как поместить эти файлы в (.....), я пытаюсь ("access.log VAR.log ddd.log"), но его не работает? – maihabunash