Войти

Показать полную графическую версию : [решено] VBS скрипт удаления конкретного файла


qwer8383
28-02-2011, 12:24
Здравствуйте! Нужна помощь в написании скрипта на VBS, который удалял бы конкретно указанный файл (расположенный на сетевом ресурсе), если только он старше определенного времени. Помогите кто чем сможет.

megaloman
28-02-2011, 16:04
FName = "\\Server_NT\{Общая}\__Delete\1.doc" ' Полное имя файла
DateDelete = DateSerial(2011, 2, 23) ' Дата старше которой файл удаляется (год, мес, день)

Set FSO = CreateObject("Scripting.FileSystemObject")

If FSO.FileExists(FName) Then
If FSO.GetFile(FName).DateLastModified < DateDelete Then FSO.DeleteFile FName, True
End If

qwer8383
01-03-2011, 09:49
megaloman, спасибо большое за подсказку. Мне надо было вот так:

Set FSO = CreateObject("Scripting.FileSystemObject")


Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If
For Each objOS In objService.ExecQuery("SELECT * FROM Win32_OperatingSystem")
Exit For
Next



Dim FSO, file, fileName
'имя компьютера
fileName = "\\terminal-srv\Inventory$\" & objOS.CSName & ".xml"

Set FSO = CreateObject("Scripting.FileSystemObject")

Set WshShell = CreateObject("WScript.Shell")

DateDelete = DateAdd("d", -30, date) ' Дата старше которой файл удаляется (год, мес, день)

If FSO.FileExists(fileName) Then
If FSO.GetFile(fileName).DateLastModified < DateDelete Then FSO.DeleteFile fileName, True
End If


if Not FSO.FileExists(fileName) Then
RetCode = WshShell.Run("\\terminal-srv\Inventory$\tniaudit.exe /scripted", 1, True)
End if

AndrewZ
01-03-2011, 12:47
А что делать если имя файла постоянно меняется, скажем имя файла это дата его создания, как тогда удалять такие файлы?
А лучше скажем сначала проверять наличие файлов?
Подскажите ОЧЕНЬ НАДО!!!

AndrewZ
01-03-2011, 16:58
балгодарю проблему решил намного проще
сначала проверям существует ли сегоднящний бекап, если да удаляем бекапы старее чем три дня, если нетю. отправляем письмо об отсутствии файла и ничего не делаем!
@Echo Off
net use z: \\192.168.3.25\backup\exc01

For /F "Tokens=1 Delims=.+-" %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set DateTime=%%i
If Exist Z:\%DateTime:~6,-6%.%DateTime:~4,-8%.%DateTime:~0,-10%exc01.bkf (
Forfiles -p z:\ -m *.* -d -3 -c "cmd /c del /q @path"
) Else (
c:\blat\blat.exe -server 192.168.3.5 -f 1c@nevastar.ru -u office\1c -pw 6472807 -to it@nevastar.ru -subject "TEST" -body "ERROR" "
)
net use z: /delete




© OSzone.net 2001-2012