Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление файлов созданных ранее текущей даты на неделю (http://forum.oszone.net/showthread.php?t=133541)

KillHunter 02-03-2009 09:53 1052628

Удаление файлов созданных ранее текущей даты на неделю
 
Добрый день! помогите написать скрипт для удаления файлов созданных ранее текущей даты на неделю. Цель сего скрипта такова, есть файлы в директории D:\Backup, созданные с помощью ntbackup (файлы *.bkf), которые содержат в имени файла дату создания(04.02.2009.bkf).Нужно чтобы скрипт проверял текущую дату и удалял файлы старее 1 недели.

amel27 02-03-2009 10:49 1052664

если имя файла соответствует отображению даты текущей локали:
Код:

strRoot = "C:\Backup"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDIR = objFSO.GetFolder(strRoot)
Set colFiles = objDIR.Files

For Each objFile In colFiles
  FileDate = CDate(Left(objFile.Name,10))
  If DateDiff("w",FileDate,Now)>0 Then
    objFile.Delete
  End If
Next


KillHunter 03-03-2009 16:05 1053854

Цитата:

если имя файла соответствует отображению даты текущей локали:
Код:

Код:  strRoot = "C:\Backup"  Set objFSO = CreateObject("Scripting.FileSystemObject") Set objDIR = objFSO.GetFolder(strRoot) Set colFiles = objDIR.Files  For Each objFile In colFiles  FileDate = CDate(Left(objFile.Name,10))  If DateDiff("w",FileDate,Now)>0 Then    objFile.Delete  End If Next

Выдаёт ошибку несоответствие типа CDate

amel27 03-03-2009 17:14 1053907

Цитата:

Цитата KillHunter
Выдаёт ошибку несоответствие типа CDate »

значит имя файла не соответствует формату даты, отладочный вариант:
Код:

On Error Resume Next
strRoot = "C:\Backup"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDIR = objFSO.GetFolder(strRoot)
Set colFiles = objDIR.Files

For Each objFile In colFiles
  FileDate = CDate(Left(objFile.Name,10))
  If Err.Number<>0 Then
    WScript.Echo "Файл: """ & objFile.Name &""""& vbCRLF & _
      "Дата: """ & Left(objFile.Name,10) &""""& vbCRLF & _
      vbCRLF & Err.Description
    WScript.Quit
  End If
  If DateDiff("w",FileDate,Now)>0 Then
    objFile.Delete
  End If
Next


KillHunter 05-03-2009 10:36 1055481

Спасибо.В данном виде всё работает.

amel27 06-03-2009 12:23 1056397

скрипты абсолютно одинаковые, но в последнем варианте отключены системные сообщения об ошибках, поэтому лучше найти ошибку


Время: 06:19.

Время: 06:19.
© OSzone.net 2001-